1.更改窗体标题
- this->setWindowTitle("窗体标题");
“窗体标题”就是更改的窗体标题
2.控制窗体大小
- this->setMaximumSize(300,300);
- this->setMinimumSize(300,300);
- this->setMinimumHeight(300);
- this->setMaximumWidth(300);
也可以通过窗体布局控制窗体大小
- QGridLayout *mainLayout = new QGridLayout;
- mainLayout->setSizeConstraint(QLayout::SetFixedSize);
在构造函数中的这个函数强制设置窗体的布局为固定大小,用户不可自行调整对话框大小。布局管理器将会负责调整大小的任务,当一些子窗口期间显示或隐藏的时候自动的调整对话框的大小,以保证对话框总是以优化了的大小显示。
在官方文档中setSizeConstraint给的解释为:sizeConstraint:SizeConstraint. This property holds the resize mode of the layout.
这个函数主要是通过布局管理器对布局大小进行限制,与上面介绍的窗体大小有所不同。
函数SetFixedSize如下:
- void QWidget::setFixedSize(const QSize &s);
设置控件的最大和最小尺寸为s,防止控件大小的变化。
3.更改窗体图标
首先在项目右键-->添加新文件,弹出如下对话框

在左侧选中Qt,右侧选择Qt Resource File,然后Choose,页面如下:

如果路径没错的话就自己命一个名字例如:icon,然后下一步,一路next知道完成。这时候在工程文件目录下多出一个后缀为.qrc的文件,打开,如下:

然后在右侧点击添加->添加前缀,然后->添加文件,选择准备好的ICO图片,图片可以去矢量图库搜索下载,这里选用32*32的彩色图标,添加完图标后给图标起一个别名,容易被记忆的,写代码的时候可以直接用别名代替图片名称,如下:

这时候窗体图标就已经准备好了,下面开始编写代码,在mainwindows.cpp文件中
- this->setWindowTitle("calculator");
- this->setMaximumSize(300,400);
- this->setMinimumSize(300,400);
- this->setWindowIcon(QIcon(":/new/prefix1/icon"));
运行看一下图标已经改了。
4.去掉标题栏中最大化最小化按钮
-
- this->setWindowFlags(Qt::WindowMinMaxButtonsHint);
-
- this->setWindowFlags(Qt::WindowCloseButtonHint);
5.添加任务栏图标
在MainWindow.h文件中添加如下代码
- #include <QSystemTrayIcon> //任务栏类
- #include <QMenu> //菜单类
-
- private:
-
-
- QSystemTrayIcon *trayIcon;
- QMenu *trayMenu;
- QAction *quitAction;
- QAction *restoreWinAction;
- void createMenu();
在mainwindow.cpp中添加代码
- createMenu();
-
-
- if(!QSystemTrayIcon::isSystemTrayAvailable())
- {
- return;
- }
-
-
- trayIcon = new QSystemTrayIcon(this);
- trayIcon->setIcon(QIcon(":/new/prefix1/icon"));
- trayIcon->setToolTip("Calculator");
- trayIcon->showMessage("托盘","托盘管理",QSystemTrayIcon::Information,10000);
- trayIcon->setContextMenu(trayMenu);
- trayIcon->show();
-
-
- void MainWindow::createMenu()
- {
- restoreWinAction = new QAction("恢复(&R)",this);
- quitAction = new QAction("退出(&Q)",this);
-
-
- connect(restoreWinAction,SIGNAL(triggered(bool)),this,SLOT(showNormal()));
-
-
- connect(quitAction,SIGNAL(triggered(bool)),qApp,SLOT(quit()));
-
-
- trayMenu = new QMenu((QWidget*)QApplication::desktop());
- trayMenu->addAction(restoreWinAction);
-
-
- trayMenu->addSeparator();
- trayMenu->addAction(quitAction);
- }
-
-
- void MainWindow::showNormal()
- {
- this->show();
- }
-
-
- void QWidget::changeEvent(QEvent *e)
- {
- if((e->type()==QEvent::WindowStateChange)&&this->isMinimized())
- {
- this->hide();
- }
- }