学习宝典[共85页].docVIP

  • 2
  • 0
  • 约5.01万字
  • 约 56页
  • 2021-01-15 发布于云南
  • 举报
1.1 从 Hello Qt 开始 收藏 差不多所有的程序教材都从 Hello 开始,下面就是这个程序的 qt 版本。 1 #include QApplication 2 #include QLabel 3 int main(int argc, char *argv[]) 4 { 5 QApplication app(argc, argv); 6 QLabel *label = new QLabel(Hello Qt!); 7 label-show(); 8 return app.exec(); 9 } 按行解析以上 9 行代码 第一,二行:是代码中需要使用的类的头文件。在 Qt4 中,可以写成 QAppli cation 的格式,当然也可写成 “QApplication.h 。” 第三行:是 main 函数的标准写法 第五行:创建一个 QApplication 对象,管理应用程序的资源。 第六行: QLabel 对象,QLabel 是一个 Qt 提供的小控件,显示一行文本。 第七行:显示 QLabel 。 第八行:QApplication.exec() ,让程序进入消息循环。等待可能的菜单,工具 条,鼠标等的输入,进行响应。 将以上代码放到名为 hello.cpp 中,保存,编译过程如下: qmake -project ,qmake 命令创建 ,是平台无关的工程文件。 在 所在目录下,运行 make (unix )或者 nmake (windows )。 第 6 行代码还可以如下替换: QLabel *label = new QLabel(h2iHello/i font color=redQt!/font/h2); 这里面包含了 html 文本,显示的字体,颜色会改变。 实际程序中,下面两行是比不可少的。 QApplication app(argc, argv); return app.exec(); 1.2 连接信号和响应函数 收藏 连接信号和响应函数 这个例子用来说明怎么响应信号,和 hello 程序的源代码相似,原来的 Label 用一个按钮代替,点击时退出程序。 源程序如下: 1 #include QApplication 2 #include QPushButton 3 int main(int argc, char *argv[]) 4 { 5 QApplication app(argc, argv); 6 QPushButton *button = new QPushButton(Quit); 7 QObject::connect(button, SIGNAL(clicked()), 8 app, SLOT(quit())); 9 button-show(); 10 return app.exec(); 11 } 当有所动作或者状态改变, qt 的控件会发出消息( signal ),例如,当点 击按钮时,按钮会发送 clicked() 消息,这个消息可以连接到一个函数上(这个 函数在这里成为 slot )。这样,当一个消息发送时, slot 函数可以自动执行。 在 这个例子中,我们连接了按钮的 clicked 信号和 QApplication 的quit 函数, 语法如第七,八行所示。 编译以上程序,将以上代码放在 quit.cpp 文件中,保存。 依次运行 qmake -project qmake make(unix or linux) or nmake(windows) 然后运行程序,点击 Quit 按钮,程序将会中止。 1.3 控件的几何排列- Laying Out Widgets 收藏 在这个小节中,我们说明在一个窗口中如何排列多个控件。学习利用 signal 和 slot 的方法使控件同步。 程序要求用户通过 spin box 或者 slider 输入年龄。 程序中使用了三个控件: QSpinBox ,QSlider 和 QWidget 。QWidget 是这个 程序的主窗口。 QSpinBox 和 QSlider 被放在 QWidget 中;他们是 QWidget 的 children 。反过来,我们也可以称 QWidget 是 QSpinBox 和 QSlider 的 p arent 。QWidget 没有 parent ,因为它是程序的顶层窗口。在 QWidget 及其 子类的构造函数中,都有一个 QWidget* 参数,用来指定它们的父控件。 源代码如下: 1 #include QApplication 2 #include QHBoxLayout 3 #include QSlider 4 #include QSpinBox 5 int main(int argc, char *arg

文档评论(0)

1亿VIP精品文档

相关文档