Qt入门
Posted pingfandfy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt入门相关的知识,希望对你有一定的参考价值。
1 #include <qapplication.h> 2 #include <qlabel.h> 3 4 int main(int argc,char *argv[]) 5 { 6 QApplication app(argc,argv); 7 QLabel *label = new QLabel("Hello Qt"); 8 label->show(); 9 10 return app.exec(); 11 }
QLabel窗口部件,窗口部件是用户界面中的一个可视化元素。应用程序的窗口通常就是一个包含了QMenuBar、QToolBar、QStatusBar以及一些其它窗口部件。绝大多数应用程序都会使用一个QMainWindow或者一个QDialog来作为他的窗口,但是Qt更加灵活,以至于任意窗口都可以用作窗口。
app.exec()将应用程序的控制权传递给Qt。此时,程序会进入时间循环状态,这是一种等待模式,程序会等候用户的动作。例如鼠标单击和按键等操作。用户的动作会让可以产生想用的程序生成一些时间。这的响应通常就是执行一个或者多个函数。
在命令提示符下,进入hello目录,输入如下命令,生成一个与平台无关的项目文件hello.pro:
qmake -project
然后,输入如下命令,从这个项目文件生成一个与平台相关的makefile文件:
qmake hello.pro
1.2 建立连接
Qt窗口部件通过发送信号(signal)来表明一个用户动作已经发生了或者一个状态已经改变了。例如,当用户单击QPushButton时,该按钮会发射一个clicked信号。信号可以与函数项链,以便在发射信号是,槽可以得到自动执行。
1.3 窗口部件的布局
布局来管理窗口部件的几何形状,说明如何利用信号和槽来同步窗口部件。
1 #include <qapplication.h> 2 #include <qspinbox.h> 3 #include <qslider.h> 4 #include <qhboxlayout.h> 5 6 int main(int argc,char *argv[]) 7 { 8 QApplication app(argc,argv); 9 QWidget *widget = new QWidget(); 10 11 widget->setWindowText("Enter Your Age"); 12 QSpinBox *spinbox = new QSpinBox(); 13 QSlider *slider = new QSlider(Qt::Horizontal); 14 spinbox->setRange(0,130); 15 slider->setRange(0,130); 16 17 QObject::connect(spinbox,SIGNAL(valueChanged(int)),&app,SLOT(setValue(int))); 18 QObject::connect(slider,SIGNAL(valueChanged(int)),&app,SLOT(setValue(int))); 19 spinbox->setValue(35); 20 QHBoxLayout *hlayout = new QHBoxLayout(); 21 hlayout->addWidget(spinbox); 22 hlayout->addWidget(slider); 23 window->setLayout(layout); 24 25 window->show(); 26 return app.exec();
QHBoxLayout:在水平方向上排列窗口部件,从左到右。
QVBoxLayout:在竖直方向上排列窗口部件,从上到下。
QGridLayout:把个个窗口部件排列在一个网格中。
QWidget::setLayout()函数调用会在窗口上安装该布局管理器。
以上是关于Qt入门的主要内容,如果未能解决你的问题,请参考以下文章