Qt Gui 第三章~第四章
一、图片资源的调用
如上图是我图片存放的位置跟qrc的命名;
如下则是qrc对应的编写格式;
<RCC> <qresource> <file>images/icon.png</file> . . . <file>images/gotocell.png</file> </qresource> </RCC>
当qrc放置好之后,则需要在pro文件中添加对应的文件配置:RESOURCES = spreadsheet1.qrc
当完成这些操作之后则可以自由地调用images中存在,并且qrc中已经描述的文件;
比如:QIcon(":/images/gotocell.png")
二、QAction的使用
任何QT窗口部件都可以有一个与之相关联的QActions列表。当需要统一操作,而各个控件不一样的时候,可以通过QAction来预操作;具体可以看帮助文档;
比如可以读取存储在action里面的data;
QAction* action = qobject_cast<QAction*>(sender()); if (action) loadFile(action->data().toString());
这里通过sender()可以获取触发槽对应的信号的对象;比如:
connect(aboutAction, SIGNAL(triggered()), this, SLOT(about()));
在about()函数中调用sender();则会返回对应的aboutAction
三、QSettings的使用
QSettings settings("Software Inc.", "Spreadsheet"); settings.setValue("geometry", saveGeometry()); settings.setValue("recentFiles", recentFiles); settings.setValue("showGrid", showGridAction->isChecked()); settings.setValue("autoRecalc", autoRecalcAction->isChecked());
可以通过该类设置对应的key,value到系统中;当该软件再次打开的时候,可以再次获取到之前软件中保存的一些设置;
QSettings settings("Software Inc.", "Spreadsheet"); restoreGeometry(settings.value("geometry").toByteArray()); recentFiles = settings.value("recentFiles").toStringList(); updateRecentFileActions(); bool showGrid = settings.value("showGrid", true).toBool(); showGridAction->setChecked(showGrid); bool autoRecalc = settings.value("autoRecalc", true).toBool(); autoRecalcAction->setChecked(autoRecalc);
四、模态跟非模态对话框;
非模态对话框
findDialog = new FindDialog(this); findDialog->show(); findDialog->raise(); findDialog->activateWindow();
模态对话框
GoToCellDialog dialog(this); dialog.exec()
当非模态的对话框要变成模态对话框则需要调用函数 findDialog->setModel();
问题描述:
mac中,在菜单中无法指定位置显示
fileMenu->addAction(exitAction); helpMenu = menuBar()->addMenu(tr("&Help")); helpMenu->addAction(aboutAction); helpMenu->addAction(aboutQtAction);
这是因为在mac中这几个是全局窗口模式的,所以无法根据自己的设置进行显示;如下图所示:
分类:
Qt基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!