Qt入门(16)——组装窗口部件
来源:互联网 发布:apache 更新 编辑:程序博客网 时间:2024/06/05 17:18
这个例子显示了创建几个窗口部件并用信号和槽把它们连接起来,和如何处理重新定义大小事件。
这里显示的是三个新的被包含的头文件。qslider.h和qlcdnumber.h在这里是因为我们使用了两个新的窗口部件,QSlider和QLCDNumber。qvbox.h在这里是因为我们使用了Qt的自动布局支持。
MyWidget现在继承了QVBox,而不是QWidget。我们通过这种方式来使用QVBox的布局(它可以把它的子窗口部件垂直地放在自己里面)。重新定义大小自动地被QVBox处理,因此现在也就被MyWidget处理了。
QLCDNumber *lcd = new QLCDNumber( 2, this, "lcd" );
lcd是一个QLCDNumber,一个可以按像LCD的方式显示数字的窗口部件。这个实例被设置为显示两个数字,并且是this的子窗口部件。它被命名为“lcd”。
QSlider是一个经典的滑块,用户可以通过在拖动一个东西在一定范围内调节一个整数数值的方式来使用这个窗口部件。这里我们创建了一个水平的滑块,设置它的范围是0~99(包括0和99,参见QSlider::setRange()文档)并且它的初始值是0。
connect( slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)) );
这里我们是用了信号/槽机制把滑块的valueChanged()信号和LCD数字的display()槽连接起来了。
无论什么时候滑块的值发生了变化,它都会通过发射valueChanged()信号来广播这个新的值。因为这个信号已经和LCD数字的display()槽连接起来了,当信号被广播的时候,这个槽就被调用了。这两个对象中的任何一个都不知道对方。这就是组件编程的本质。
槽是和普通C++成员函数的方式不同,但有着普通C++成员函数的方位规则。
#include <qapplication.h> #include <qpushbutton.h> #include <qslider.h> #include <qlcdnumber.h> #include <qfont.h> #include <qvbox.h>
这里显示的是三个新的被包含的头文件。qslider.h和qlcdnumber.h在这里是因为我们使用了两个新的窗口部件,QSlider和QLCDNumber。qvbox.h在这里是因为我们使用了Qt的自动布局支持。
class MyWidget : public QVBox { public: MyWidget( QWidget *parent=0, const char *name=0 ); }; MyWidget::MyWidget( QWidget *parent, const char *name ) : QVBox( parent, name ) {
MyWidget现在继承了QVBox,而不是QWidget。我们通过这种方式来使用QVBox的布局(它可以把它的子窗口部件垂直地放在自己里面)。重新定义大小自动地被QVBox处理,因此现在也就被MyWidget处理了。
QLCDNumber *lcd = new QLCDNumber( 2, this, "lcd" );
lcd是一个QLCDNumber,一个可以按像LCD的方式显示数字的窗口部件。这个实例被设置为显示两个数字,并且是this的子窗口部件。它被命名为“lcd”。
QSlider * slider = new QSlider( Horizontal, this, "slider" ); slider->setRange( 0, 99 ); slider->setValue( 0 );
QSlider是一个经典的滑块,用户可以通过在拖动一个东西在一定范围内调节一个整数数值的方式来使用这个窗口部件。这里我们创建了一个水平的滑块,设置它的范围是0~99(包括0和99,参见QSlider::setRange()文档)并且它的初始值是0。
connect( slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)) );
这里我们是用了信号/槽机制把滑块的valueChanged()信号和LCD数字的display()槽连接起来了。
无论什么时候滑块的值发生了变化,它都会通过发射valueChanged()信号来广播这个新的值。因为这个信号已经和LCD数字的display()槽连接起来了,当信号被广播的时候,这个槽就被调用了。这两个对象中的任何一个都不知道对方。这就是组件编程的本质。
槽是和普通C++成员函数的方式不同,但有着普通C++成员函数的方位规则。
#include <qapplication.h>#include <qpushbutton.h>#include <qslider.h>#include <qlcdnumber.h>#include <qfont.h>#include <qvbox.h>class MyWidget : public QVBox{public: MyWidget( QWidget *parent=0, const char *name=0 );};MyWidget::MyWidget( QWidget *parent, const char *name ) : QVBox( parent, name ){ QPushButton *quit = new QPushButton( "Quit", this, "quit" ); quit->setFont( QFont( "Times", 18, QFont::Bold ) ); connect( quit, SIGNAL(clicked()), qApp, SLOT(quit()) ); QLCDNumber *lcd = new QLCDNumber( 2, this, "lcd" ); QSlider * slider = new QSlider( Horizontal, this, "slider" ); slider->setRange( 0, 99 ); slider->setValue( 0 ); connect( slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)) );}int main( int argc, char **argv ){ QApplication a( argc, argv ); MyWidget w; a.setMainWidget( &w ); w.show(); return a.exec();}
0 0
- Qt入门(16)——组装窗口部件
- Qt入门(14)——父窗口部件和子窗口部件
- Qt入门(15)——使用窗口部件
- Qt入门(19)——自定义窗口部件
- Qt——中心窗口部件
- Qt入门(17)——组装复杂的控件
- QT入门笔记--窗口部件的布局
- Qt教程一 —— 第四章:使用窗口部件
- Qt学习笔记--窗口部件(Widget)
- Qt学习笔记--窗口部件(Widget)
- Qt学习笔记--窗口部件(Widget)
- Qt学习笔记--窗口部件(Widget)
- Qt窗口部件
- 自定义Qt窗口部件
- Qt窗口部件
- Qt自定义窗口部件
- Qt自定义窗口部件
- Qt窗口部件
- Qt入门(11)——Qt插件
- Qt入门(12)——Qt国际化
- Qt入门(13)——Qt的调用退出
- Qt入门(14)——父窗口部件和子窗口部件
- Qt入门(15)——使用窗口部件
- Qt入门(16)——组装窗口部件
- 直接插入排序(递归与非递归2种实现方法)
- Qt入门(17)——组装复杂的控件
- Java 静态语句块、语句块、构造函数
- 请谈谈你对Hadoop的理解
- Qt入门(18)——使用信号和槽连接控件
- txt
- Qt入门(19)——自定义窗口部件
- Qt QTcpServer的使用