存档在 2011年4月

让Qt窗口在桌面中心显示

2011年4月3日

设置窗口居中显示

方法一:在窗口(QWidget类及派生类)的构造函数中添加如下代码:

#include <QDesktopWidget>
QDesktopWidget* desktop = QApplication::desktop(); //或者 =qApp->desktop()
move((desktop->width() - this->width())/2, (desktop->height() - this->height())/2);
//.......

方法2:在调用show()函数后调用move()函数,j将窗口移动到屏幕中央。

move ((QApplication::desktop()->width() - w.width())/2,(QApplication::desktop()->height() - w.height())/2);

推荐先move后再show.

Qt多信号连接一个槽,发送者判断

2011年4月3日

多个signals连接一个slot的时候,有时候需要在槽函数中判断信号的发送者,这时候可以使用QObject::sender()函数进行判断。

    connect(ui->button0, SIGNAL(clicked()), this, SLOT(append()));
    connect(ui->button1, SIGNAL(clicked()), this, SLOT(append()));

在槽函数中,使用如下方式判断,qobject_cast类似于c++标准中的dynamic_cast<>

    QObject *object = QObject::sender();
    QPushButton *sender = qobject_cast<QPushButton *>(object);