本文记录QT界面、窗体,等等的设置。
QMessageBox使用
1 2 3 4 5 6 7
| // 一个提示语 QMessageBox msg(QMessageBox::NoIcon, tr("title"), tr("exit?"), QMessageBox::Yes | QMessageBox::No, NULL); if (msg.exec() == QMessageBox::Yes) { QApplication* app; app->exit(0); // 退出程序 }
|
窗口最大化和最小化
主窗口初始化函数。
1 2 3 4 5 6 7 8 9 10 11 12 13
| // 设置窗体最大化和最小化 Qt::WindowFlags winFlags = Qt::Dialog; winFlags |= Qt::WindowMinMaxButtonsHint; // 同时最大最小化 // winFlags |= Qt::WindowMinimizeButtonHint; // winFlags |= Qt::WindowMaximizeButtonHint; winFlags |= Qt::WindowCloseButtonHint;
setWindowFlags(winFlags); // 显示策略,不调用默认showNormal // showMinimized(); // showMaximized(); // showFullScreen(); // showNormal();
|
窗体可拖动
默认只有标题框可拖动。头文件及函数声明(实际是重载):
1 2 3 4 5 6 7 8 9 10
| #include <QMouseEvent>
void mousePressEvent(QMouseEvent *event); // 鼠标按下 void mouseMoveEvent(QMouseEvent *event); // 鼠标移动 void mouseReleaseEvent(QMouseEvent *event); // 鼠标释放
int m_pressMouse; // 当点击下拉框时,窗口跳动,加上判断 QPoint m_startPos; QPoint m_windowPos;
|
实现函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| void MainWindow::mousePressEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton) { m_startPos = event->globalPos(); m_windowPos = this->frameGeometry().topLeft(); m_pressMouse = 1; } else if(event->button() == Qt::RightButton) {
} }
void MainWindow::mouseMoveEvent(QMouseEvent *event) { if (event->buttons() == Qt::LeftButton) { if (m_pressMouse) { QPoint relativePos = event->globalPos() - m_startPos; this->move(m_windowPos + relativePos );
} } else if(event->button() == Qt::RightButton) {
} }
void MainWindow::mouseReleaseEvent(QMouseEvent *event) { m_pressMouse = 0; }
|
添加logo
制作logo.ico,放至工程目录。
方法1:
在.pro工程文件末尾添加:RC_ICONS = logo.ico
。编译即可。不改代码。
方法2:
新建 demo.rc 文件,内容:
1
| IDI_ICON1 ICON DISCARDABLE "logo.ico"
|
在.pro工程文件末尾添加:RC_FILE = demo.rc
。编译,即可。不改代码。
方法3:
使用代码:
1 2
| QPixmap pixmap(":/image/logo.ico"); this->setWindowIcon(pixmap);
|
图片资源
状态栏