窗口组件:
图形用户界面由不同的窗口和窗口组件构成;
Qt以组件对象的方式,构建图形用户界面。
组件的类型包括:
---容器类(父组件):用于包含其他的界面组件
---功能类(子组件):用于实现特定的交互功能
Qt中没有用父组件的顶级组件叫做窗口。
Qwidget 继承自QObject和QPaintDevice
-Qwidget 能够绘制自己和处理用户的输入,也是Qt中所以窗口组件类的父类
-Qwidget类对象作为父组件或顶级组件使用
-Qt中的每一个窗口组件都是Qwidget
-Qwidget 是所有窗口组件的抽象
QLabel组件-QLabel 用于显示提示性的字符串
-QLabel 是功能性组件,一般需要父组件作为容器
-QLabel 可以作为窗口存在,但没有实际意义
Qt中可以根据需要定制窗口式样
-窗口类型
.Qt::Dialog---对话框类型
.Qt::Window---主窗口类型
.Qt::SplashSctrrn---启动画面类型
。。。
-窗口标志
.Qt::WindowStaysOnTopHint
.Qt::WindowContexHelpButtonHint
。。。
编程实战:
新建Qwidget工程如下图:
参考代码:
1 /*main.cpp*/ 2 3 #include "widget.h" 4 #include5 6 int main(int argc, char *argv[]) 7 { 8 QApplication a(argc, argv); 9 Widget w;10 w.setWindowTitle("我是继承自Qwidget的Widget");11 w.show();12 13 return a.exec();14 }
1 /*widget.cpp*/ 2 3 #include4 #include "widget.h" 5 6 Widget::Widget(QWidget *parent) 7 : QWidget(parent) 8 { 9 m_label =new QLabel(this);10 m_label->setText("我是一个标签");11 }12 13 Widget::~Widget()14 {15 16 }
1 /*widget.h*/ 2 3 #ifndef WIDGET_H 4 #define WIDGET_H 5 6 #include7 class QLabel; 8 class Widget : public QWidget 9 {10 Q_OBJECT11 private:12 QLabel *m_label;13 public:14 Widget(QWidget *parent = 0);15 ~Widget();16 };17 18 #endif // WIDGET_H
效果图:
NOTE:
你可能现在会有很多疑问,但慢慢看下去,你的疑问就会慢慢被解决。O(∩_∩)O
Best Practices:
Qt中的帮助文档是你的第一手资料,它也是你遇到问题首先应该去查询的。但这也要求我们需要具备一定的英语阅读能力,刚开始吃力,坚持几个月就好,至少我是这样过来的,遇到不会的单词,只查词比你整句copy到翻译软件更能提高你的英语阅读水平。