Seite 1 von 1
[gelöst] QResizeEvent
Verfasst: 5. Februar 2007 11:28
von Matze-o
Moin, ich greife auf das resize Event zu, aber bei diesem aufbau:
Code: Alles auswählen
protected:
virtual void resizeEvent(QResizeEvent* ev) {
int widgetCenter = 0;
widgetCenter = ev->size()->width()/2;
lHeading->setGeometry( ( widgetCenter-100), 10, 200, 50);
}
bekomme ich den Fehler: invalid use of undefined type `struct QResizeEvent'
Außerdem, wenn ich widget center einfach auf 150 setze lässt sich das Programm compilieren, aber wenn ich das programm starte bekomm ich der Vorgang "read2 konnte nciht ausgeführt werden.
Jemand ne Ahnung?
Thx
PS. Qt 4.2.2 MinGW gc++
Verfasst: 5. Februar 2007 14:08
von Flachkoepper
#include <QResizeEvent> ???
Verfasst: 6. Februar 2007 08:12
von Matze-o
Sooo, nah dem ich das included hab und den Syntax etwas geändert habe.
Code: Alles auswählen
protected:
virtual void resizeEvent(QResizeEvent* ev) {
int widgetCenter = 0;
widgetCenter = this->width()/2;
widgetCenter = ev->size().width()/2;
//lHeading->setGeometry( ( widgetCenter-100), 10, 200, 50);
}
geht es, es klappt mit beiden weisen.
ich benutze jetzt aber this->width() und habe das include rausgenommen.
Ich bekomme aber immernoch nen Fehler, wenn ich das label Heading so verwenden möchte. Ich kann compilieren, aber wenn ich das Programm starte stürtzt er ab. (Befehl Read konnte nicht ausgeführt werden).
Verfasst: 6. Februar 2007 08:17
von Matze-o
Code: Alles auswählen
class mainWindow : public QWidget {
public:
mainWindow() {
int widgetCenter = 230/2;
QLabel* lHeading = new QLabel("CAN-Bus test", this);
lHeading->setFont(QFont("Times", 18, QFont::Bold));
lHeading->setAlignment(Qt::AlignCenter);
lHeading->setGeometry( (widgetCenter-100), 10, 200, 50);
QLabel* lRXID = new QLabel("RXID", this);
lRXID->setGeometry( 10, 50, 50, 20);
QLineEdit* tRXID = new QLineEdit("", this);
tRXID->setGeometry(10, 70, 100, 20);
QLabel* lTXID = new QLabel("RTID", this);
lTXID->setGeometry( 120, 50, 50, 20);
QLineEdit* tTXID = new QLineEdit("", this);
tTXID->setGeometry(120, 70, 100, 20);
QLabel* lMessage = new QLabel("Message", this);
lMessage->setGeometry( 10, 90, 50, 20);
QLineEdit* tMessage = new QLineEdit("", this);
tMessage->setGeometry(10, 110, 100, 20);
QPushButton* bSend = new QPushButton("Send", this);
bSend->setGeometry(120, 110, 100, 20);
QLabel* lRecieved = new QLabel("Recieved:", this);
lRecieved->setGeometry(10, 150, 100, 20);
QListWidget* lWRecieved = new QListWidget(this);
lWRecieved->setGeometry(10, 170, 210, 120);
this->setWindowTitle("CAN-Bus test");
}
protected:
virtual void resizeEvent(QResizeEvent* ev) {
int widgetCenter = 0;
widgetCenter = this->width()/2;
if (lHeading != NULL)
lHeading->setGeometry( ( widgetCenter-100), 10, 200, 50);
}
private:
QLabel* lHeading;
QLabel* lRXID;
QLabel* lTXID;
QLabel* lMessage;
QLabel* lReceived;
QLineEdit* tRXID;
QLineEdit* tTXID;
QLineEdit* tMessage;
QPushButton* bSend;
QListWidget* lWReceived;
};
So habe ich das jetzt umgeschrieben, jetzt lässt sich das Programm starten, aber das Label verändert sich nicht.
Verfasst: 13. Februar 2007 10:51
von Matze-o
Code: Alles auswählen
class mainWindow : public QWidget
{
public:
mainWindow()
{
this->setGeometry(50, 50, 230, 300);
this->setMinimumSize(230, 300);
int widgetCenter = this->width()/2;
lHeading = new QLabel("CAN-Bus test", this);
lHeading->setFont(QFont("Times", 18, QFont::Bold));
lHeading->setAlignment(Qt::AlignCenter);
lHeading->setGeometry( (widgetCenter-100), 10, 200, 50);
lRXID = new QLabel("RXID", this);
lRXID->setGeometry( 10, 50, 50, 20);
tRXID = new QLineEdit("", this);
tRXID->setGeometry(10, 70, 100, 20);
lTXID = new QLabel("RTID", this);
lTXID->setGeometry( 120, 50, 50, 20);
tTXID = new QLineEdit("", this);
tTXID->setGeometry(120, 70, 100, 20);
lMessage = new QLabel("Message", this);
lMessage->setGeometry( 10, 90, 50, 20);
tMessage = new QLineEdit("", this);
tMessage->setGeometry(10, 110, 100, 20);
bSend = new QPushButton("Send", this);
bSend->setGeometry(120, 110, 100, 20);
lReceived = new QLabel("Recieved:", this);
lReceived->setGeometry(10, 150, 100, 20);
lWReceived = new QListWidget(this);
lWReceived->setGeometry(10, 170, 210, 120);
this->setWindowTitle("CAN-Bus test");
menuFile = new QMenu("&File");
menuFile->addAction("&Close");
menuHelp = new QMenu("&Help");
menuHelp->addAction(QIcon("help.ppm"),"&?");
menuBar = new QMenuBar(this);
menuBar->addMenu(menuFile);
menuBar->addMenu(menuHelp);
}
protected:
virtual void resizeEvent(QResizeEvent* ev)
{
int widgetCenter = 0;
int widgetHeight = 0;
int widgetWidth = 0;
widgetCenter = this->width()/2;
widgetWidth = this->width();
widgetHeight = this->height();
lHeading->setGeometry((widgetCenter-100), 10, 200, 50);
lWReceived->setGeometry(10, 170, widgetWidth-20, widgetHeight-180);
}
private:
QLabel* lHeading;
QLabel* lRXID;
QLabel* lTXID;
QLabel* lMessage;
QLabel* lReceived;
QLineEdit* tRXID;
QLineEdit* tTXID;
QLineEdit* tMessage;
QPushButton* bSend;
QListWidget* lWReceived;
QMenu* menuFile;
QMenu* menuHelp;
QMenuBar* menuBar;
};
Das Problem war, dass ich die Objekte im konrstruktor lokal definiet habe.
Verfasst: 13. Februar 2007 18:46
von upsala
Wieso schreibst du immer
? Und nicht einfach nur
?
Verfasst: 13. Februar 2007 18:57
von Matze-o
Hmm, weil is schöner?
Kein Plan wirklich
