大家好,欢迎来到IT知识分享网。
一些很零散的窗体控制方法,在这总结一些。
1.更改窗体标题
this->setWindowTitle("窗体标题");
窗体标题”就是更改的窗体标题
2.控制窗体大小
1 this->setMaximumSize(300,300); //窗体最大尺寸 2 this->setMinimumSize(300,300); //窗体最小尺寸 3 this->setMinimumHeight(300); //单独设置窗体高的最小值 4 this->setMaximumWidth(300); //单独设置窗体宽的最小值
也可以通过窗体布局控制窗体大小
1 QGridLayout *mainLayout = new QGridLayout; //窗体中控件为网格布局 2 mainLayout->setSizeConstraint(QLayout::SetFixedSize); //布局大小不变
在构造函数中的这个函数强制设置窗体的布局为固定大小,用户不可自行调整对话框大小。布局管理器将会负责调整大小的任务,当一些子窗口期间显示或隐藏的时候自动的调整对话框的大小,以保证对话框总是以优化了的大小显示。
在官方文档中setSizeConstraint给的解释为:sizeConstraint:SizeConstraint. This property holds the resize mode of the layout.
这个函数主要是通过布局管理器对布局大小进行限制,与上面介绍的窗体大小有所不同。
【领QT开发教程学习资料,点击下方链接免费领取↓↓,先码住不迷路~】
点击→领取「链接」
函数SetFixedSize如下:
void QWidget::setFixedSize(const QSize &s);
设置控件的最大和最小尺寸为s,防止控件大小的变化。
3.更改窗体图标
首先在项目右键–>添加新文件,弹出如下对话框
在左侧选中Qt,右侧选择Qt Resource File,然后Choose,页面如下:
如果路径没错的话就自己命一个名字例如:icon,然后下一步,一路next知道完成。这时候在工程文件目录下多出一个后缀为.qrc的文件,打开,如下:
然后在右侧点击添加->添加前缀,然后->添加文件,选择准备好的ICO图片,图片可以去矢量图库搜索下载,这里选用32*32的彩色图标,添加完图标后给图标起一个别名,容易被记忆的,写代码的时候可以直接用别名代替图片名称,如下:
这时候窗体图标就已经准备好了,下面开始编写代码,在mainwindows.cpp文件中
1 this->setWindowTitle("calculator"); //设置窗体标题 2 this->setMaximumSize(300,400); //窗体最大尺寸 3 this->setMinimumSize(300,400); //窗体最小尺寸 4 this->setWindowIcon(QIcon(":/new/prefix1/icon")); //窗体图标
运行看一下图标已经改了。
4.去掉标题栏中最大化最小化按钮
1 //关闭按钮失效 2 this->setWindowFlags(Qt::WindowMinMaxButtonsHint); 3 //去掉最大化最小化按钮,保留关闭按钮 4 this->setWindowFlags(Qt::WindowCloseButtonHint);
5.添加任务栏图标
在MainWindow.h文件中添加如下代码
1 #include <QSystemTrayIcon> //任务栏类 2 #include <QMenu> //菜单类 3 4 private: 5 6 //窗口任务栏属性 7 QSystemTrayIcon *trayIcon; 8 QMenu *trayMenu; 9 QAction *quitAction; //退出程序 10 QAction *restoreWinAction; //恢复窗口 11 void createMenu();
1 private slots: 2 void showNormal();
在mainwindow.cpp中添加代码
【领QT开发教程学习资料,点击下方链接免费领取↓↓,先码住不迷路~】
点击→领取「链接」
1 createMenu(); 2 3 //判断系统是否支持托盘图标显示 4 if(!QSystemTrayIcon::isSystemTrayAvailable()) 5 { 6 return; 7 } 8 9 //实例化托盘图标控件 10 trayIcon = new QSystemTrayIcon(this); 11 trayIcon->setIcon(QIcon(":/new/prefix1/icon")); //设置托盘图标显示 12 trayIcon->setToolTip("Calculator"); //显示提示信息 13 trayIcon->showMessage("托盘","托盘管理",QSystemTrayIcon::Information,10000); 14 trayIcon->setContextMenu(trayMenu); //绑定托盘菜单 15 trayIcon->show(); //在任务栏显示图标 16 17 //绘制任务栏菜单 18 void MainWindow::createMenu() 19 { 20 restoreWinAction = new QAction("恢复(&R)",this); 21 quitAction = new QAction("退出(&Q)",this); 22 23 //恢复窗口 24 connect(restoreWinAction,SIGNAL(triggered(bool)),this,SLOT(showNormal())); 25 26 //退出程序 27 connect(quitAction,SIGNAL(triggered(bool)),qApp,SLOT(quit())); 28 29 //添加菜单 30 trayMenu = new QMenu((QWidget*)QApplication::desktop()); 31 trayMenu->addAction(restoreWinAction); //将控件绑定到菜单 32 33 //添加分隔符 34 trayMenu->addSeparator(); 35 trayMenu->addAction(quitAction); 36 } 37 38 //恢复程序窗口 39 void MainWindow::showNormal() 40 { 41 this->show(); 42 } 43 44 //最小化隐藏界面 45 void QWidget::changeEvent(QEvent *e) 46 { 47 if((e->type()==QEvent::WindowStateChange)&&this->isMinimized()) 48 { 49 this->hide(); 50 } 51 }
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/159667.html