
QWidget类是所有用户界面对象的基类,是基础窗口部件。
窗口、子部件、窗口类型
QWidget类是所有用户界面对象的基类,被称为基础窗口部件。
实例:窗口与子部件:
myWidget1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| #include <QtWidgets> int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget *widget=new QWidget(0,Qt::Dialog);
widget->setWindowTitle(QObject::tr("I'm a label")); QLabel *label2 = new QLabel(widget); label2->setText(QObject::tr("label2:i'm not depart windows,i'm just widget part")); label2->resize(250,100);
QLabel *label = new QLabel();
label->setWindowTitle(QObject::tr("I'm a Windows!")); label->setText(QObject::tr("show what your want!")); label->resize(250,100);
widget->show(); label->show();
int ret = a.exec();
delete label; delete widget; return ret; }
|
运行结果
运行结果: http://7xsic8.com1.z0.glb.clouddn.com/myWidget.png
窗口就是没有父部件的部件,所以又称为顶级部件(top-level widget)。
与其相对的是非窗口部件,即子部件(child widget)
Qt中大部分不仅用作子部件嵌入在别的窗口中,例如程序中的label2
提供了绘制自己和处理用户输入事件的基本功能,Qt提供的所有界面元素不是QWidget的子类就是与QWidget的子类相关联。
要设计自己的窗口部件,可以继承自QWidget或者它的子类等。
QWidget的构造函数没有2个参数:
和
qDebug()
qDebug()函数输出方法:
- 另一种:使用输出流的方式一次输出多个值
这种方法必须添加头文件#include<QDbug>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #include <QtWidgets> #include<QWidget> #include<QDebug> int main(int argc,char *argv[]) { QApplication a(argc,argv); QWidget widget; widget.resize(400,300); widget.move(200,100); widget.show(); int x=widget.x(); qDebug("x: %d ",x); int y=widget.y(); qDebug("y: %d ",y); QRect geometry=widget.geometry(); QRect frame=widget.frameGeometry(); qDebug()<<"geometry:"<<geometry<<"frame:"<<frame;
qDebug()<<"post:"<<widget.pos()<<endl<<"rect:"<<widget.rect()<< endl<<"size:"<<widget.size()<<endl<<"with:"<<widget.width()<<endl<<"height:" <<widget.height(); return a.exec(); }
|
运行结果