打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Qt窗口的一些简单设置

零零碎碎看了很多Qt例子,有一些很零散的窗体控制方法,在这总结一些。

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 //任务栏类#include //菜单类private: //窗口任务栏属性 QSystemTrayIcon *trayIcon; QMenu *trayMenu; QAction *quitAction; //退出程序 QAction *restoreWinAction; //恢复窗口 void createMenu();
private slots:
void showNormal();


在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(); }}


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Qt浅谈之十三:抓图截屏
QT如何实现后台运行(即最小化到右下角托盘)
Qt浅谈之三十系统托盘(QSystemTrayIcon)
qt Spreadsheet
qt5中在QMainWidget中创建菜单栏等一系列控件
Qt基础之菜单栏
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服