setCentralWidget设置中心部件 & QTimer::singleShot函数

1、QTimer::singleShot函数

原型:

void QTimer::singleShot ( int msec, QObject * receiver, const char * member ) [静态]

这个静态函数在一个给定时间间隔之后调用一个槽。

#include <qapplication.h>
#include <qtimer.h>

int main( int argc, char **argv )
{
    QApplication a( argc, argv );
    QTimer::singleShot( 10*60*1000, &a, SLOT(quit()) );
    ... 
    // 创建并且显示你的窗口部件
    return a.exec();
}

这个示例程序会自动在10分钟之后终止(也就是600000毫秒)。

receiver(和connect函数那个参数一样)是正在接收的对象并且member是一个槽。时间间隔是msec

 

2、setCentralWidget设置中心部件

一个Qt主窗口应用程序必须有一个中心窗口部件(Central Widget)。当你采用Qt Designer创建主窗口时,默认情况下,系统已经为你创建了一个中心窗口部件,它是子类化QWidget的。

结合代码可以方便的设置中心窗口部件,可以调用主窗口类的setCentralWidget()方法,它的原型如下:

void QMainWindow::setCentralWidget ( QWidget * widget ) //它将把widget设置为主窗口的中心窗口部件。

 

Qt应用程序的主窗口管理着中心窗口部件,它会在合适的时候销毁这个中心窗口部件。每次程序调用setCentralWidget()方法时,先前存在的中心窗口部件将被新的所替换,而且主窗口会销毁原来的部件,无需用户处理。

要想在程序中获得并使用、设置中心窗口部件也很简单,通过调用主窗口类的centralWidget()方法即可实现,它的函数原型如下:

QWidget * QMainWindow::centralWidget () const   //它将返回主窗口的中心窗口部件,如果中心窗口部件不存在,它将返回0。

 

实例:

QSplitter *splitter = new QSplitter(this);
    QListView *listview = new QListView;
    QTreeView *treeview = new QTreeView;
    QTextEdit *textedit = new QTextEdit;
    splitter->addWidget(listview);
    splitter->addWidget(treeview);
    splitter->addWidget(textedit);

效果:

 

 

把它设置成中心部件

setCentralWidget(splitter);

 

 

posted @ 2021-07-22 14:59  kongbursi  阅读(761)  评论(0编辑  收藏  举报