本例子介绍如何在应用程序中使用菜单栏。...创建一个菜单栏 QMenu *menu = new QMenu(this); 添加一个菜单项目(Edit) editMenu = menuBar()->addMenu(tr("&Edit")); 为...项目添加内容 editMenu->addAction(undoAct); editMenu->addAction(redoAct); 添加分隔线 editMenu->addSeparator(); 添加子菜单项目...,依附在Edit下 formatMenu = editMenu->addMenu(tr("&Format")); 关于更多 在QtCreator软件可以找到: 或在以下Qt安装目录找到: C:\Qt...\{你的Qt版本}\Examples\{你的Qt版本}\widgets\mainwindows\menus 相关链接 https://doc.qt.io/qt-5/qtwidgets-mainwindows-menus-example.html
在上一篇博文《C/C++ Qt ListWidget 列表框组件应用》中介绍了ListWidget组件的基本使用技巧,本次将给ListWidget组件增加一个右键菜单,当用户在ListWidget组件中的任意一个子项下右键...,并对该菜单设置子菜单以及所对应的图标组,最后就是将信号连接到指定的全局菜单指针上即可,这个代码实现如下。...::CustomContextMenu); // 隐藏菜单栏上的右击菜单 this->setContextMenuPolicy(Qt::NoContextMenu); //...::CustomContextMenu); // 隐藏菜单栏上的右击菜单 this->setContextMenuPolicy(Qt::NoContextMenu); //...Qt::ItemIsUserCheckable |Qt::ItemIsEnabled); ui->listWidget_2->addItem
在上一篇博文《C/C++ Qt ListWidget 列表框组件应用》中介绍了ListWidget组件的基本使用技巧,本次将给ListWidget组件增加一个右键菜单,当用户在ListWidget组件中的任意一个子项下右键...,并对该菜单设置子菜单以及所对应的图标组,最后就是将信号连接到指定的全局菜单指针上即可,这个代码实现如下。...::CustomContextMenu); // 隐藏菜单栏上的右击菜单 this->setContextMenuPolicy(Qt::NoContextMenu); // 创建基础顶部菜单...::CustomContextMenu); // 隐藏菜单栏上的右击菜单 this->setContextMenuPolicy(Qt::NoContextMenu); // 创建基础顶部菜单...Qt::ItemIsUserCheckable |Qt::ItemIsEnabled); ui->listWidget_2->addItem(
菜单栏、工具栏、状态栏 主窗口框架(QMainWindow)拥有自己的布局,包括以下组件: 菜单栏 菜单栏包含了一个下拉菜单项的列表,这些菜单项通过QAction动作类实现。...一个主窗口只能有一个菜单栏。 工具栏 工具栏一般用于常用的菜单项,也可以插入其他窗口部件,一个主窗口可以拥有多个工具栏。...菜单栏、工具栏、状态栏 代码添加示例。...//菜单 QMenu* editMenu = ui->menuBar->addMenu("编辑(&E)"); QAction *action_copy = editMenu->addAction...自定义菜单需要定义一个继承QWidgetAction的类, 并重写createWidget方法,在该方法中自定义部件设置。
Qt添加菜单有两种方法,一是用代码直接手动添加,二是在Qtdesigner中在界面上直接添加。 先介绍用代码如何添加。 需要用到两个类QMenu和QAction,例如我的Demo程序界面如下: ?...myAc2; QAction *myAc3; private slots: void pop1(); void pop2(); void pop3(); }; 在VS2010中建立Qt
这个可以在实例化时指定菜单按键数。...CBaseConfig) { ui->setupUi(this); this->setProperty("form", true); this->setWindowFlags(Qt...::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint); // m_btnQSizePolicy...%1").arg(i)); lab->setAlignment(Qt::AlignCenter); lab->setStyleSheet("font: 48px");...ui->scrollArea->setWidget(baseConfig); } 这里每个页面也可以再嵌入菜单;这个只是实现了一个简单的菜单框架,这个菜单可以再改进添加上菜单键的翻页,菜单键太多,就两边加上箭头
ToolBar工具栏在所有窗体应用程序中都广泛被使用,使用ToolBar可以很好的规范菜单功能分类,用户可根据菜单栏来选择不同的功能,Qt中默认自带ToolBar组件,当我们以默认方式创建窗体时,ToolBar...::LeftToolBarArea,toolBar); // 设置默认停靠范围 [默认停靠左侧] toolBar->setAllowedAreas(Qt::TopToolBarArea |Qt::...,该菜单栏中可以通过SetIcon(QIcon("://image/1.ico"));指定图标,也可以使用setShortcut(Qt::CTRL | Qt::Key_C);为其指定特殊的快捷键。...,二级顶部菜单与一级菜单完全一致,只是在一级菜单的基础上进行了延申,如下代码则是定义了一个二级菜单。...this->setContextMenuPolicy(Qt::NoContextMenu); // 创建基础顶部菜单并让其隐藏 QMenuBar *bar = menuBar();
导读 正如web前端开发中CSS(Cascade Style Sheet)的作用一样,Qt开发中也可以使用修改版的QSS将逻辑业务和用户界面进行隔离。...具体的解释网上说的挺多的,Qt本身自带的文档也有较为详细的说明。...QMenuBar 菜单栏组件的spacing属性可指定菜单项之间的间距,单个菜单项还可以通过::item子组件定制风格。但是值得注意的是,由于MAC下菜单栏集成到了系统菜单栏,此时样式表会失去作用。...QLabel QLabel不支持:hover伪状态,自Qt4.3开始,给QLabel设置样式表也就隐式指定了QFrame::frameStyle属性。...Qt style sheet reference
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍ToolBar工具栏组件以及与之类似的...setOrientation(Qt::Orientation orientation) 设置工具栏的方向,可以是水平 (Qt::Horizontal) 或垂直 (Qt::Vertical)。...1.2 QMenuBar 菜单栏 QMenuBar 是 Qt 中用于创建菜单栏的组件,它提供了一种方便的方式来组织和管理应用程序的菜单。...,该菜单栏中可以通过SetIcon(QIcon("://image/.ico"));指定图标,也可以使用setShortcut(Qt::CTRL | Qt::Key_C);为其指定特殊的快捷键。...1.3.3 增加右键菜单 Qt中的菜单还可以实现任意位置的弹出,该功能的实现依赖于QMainWindow主窗体中的customContextMenuRequested()事件,该事件是Qt中的一个信号,
保留上一次 grub 菜单选项 1.1 问题 每次开机时,大部分 Linux 发行版的 grub 菜单都是定位在首选项位置(即当前系统选项位置)。...而我们一般都是一段时间固定使用一个系统,因此如果 grub 菜单能够记住上一次的菜单选项,我们平常使用就不需要手动切换 grub 菜单选项(除非需要更换开机系统)。...1.2 解决 修改 Linux 的 /etc/default/grub 文件,添加以下内容: GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true GRUB_DEFAULT...修改 grub 菜单等待时间 2.1 问题 有些 Linux 发行版开机进入 grub 菜单后等待时间很短,因此每次都需要抓住 grub 菜单出来的那一刻手动按键终止 grub 菜单等待时间倒计时。...2.2 解决 修改 Linux 的 /etc/default/grub 文件中的 GRUB_TIMEOUT 变量值,单位为秒: GRUB_TIMEOUT="30" # 比如修改为 30 秒的等待时间
ToolBar工具栏在所有窗体应用程序中都广泛被使用,使用ToolBar可以很好的规范菜单功能分类,用户可根据菜单栏来选择不同的功能,Qt中默认自带ToolBar组件,当我们以默认方式创建窗体时,ToolBar...::LeftToolBarArea,toolBar); // 设置默认停靠范围 [默认停靠左侧] toolBar->setAllowedAreas(Qt::TopToolBarArea |Qt...,该菜单栏中可以通过SetIcon(QIcon("://image/1.ico"));指定图标,也可以使用setShortcut(Qt::CTRL | Qt::Key_C);为其指定特殊的快捷键。...,二级顶部菜单与一级菜单完全一致,只是在一级菜单的基础上进行了延申,如下代码则是定义了一个二级菜单。...this->setContextMenuPolicy(Qt::NoContextMenu); // 创建基础顶部菜单并让其隐藏 QMenuBar *bar = menuBar
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍ToolBar工具栏组件以及与之类似的...setOrientation(Qt::Orientation orientation) 设置工具栏的方向,可以是水平 (Qt::Horizontal) 或垂直 (Qt::Vertical)。...1.2 QMenuBar 菜单栏QMenuBar 是 Qt 中用于创建菜单栏的组件,它提供了一种方便的方式来组织和管理应用程序的菜单。...该菜单栏中可以通过SetIcon(QIcon("://image/.ico"));指定图标,也可以使用setShortcut(Qt::CTRL | Qt::Key_C);为其指定特殊的快捷键。...1.3.3 增加右键菜单Qt中的菜单还可以实现任意位置的弹出,该功能的实现依赖于QMainWindow主窗体中的customContextMenuRequested()事件,该事件是Qt中的一个信号,通常与右键菜单
Qt Linguist 等部分 Qt 支持所有 Unix 系统,当然也包括 Linux,还支持 WinNT/Win2k,Win95/98 平台。...: 优良的跨平台特性: Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX,...但是 Motif/CDER 的价格非常昂贵,在这同时微软的 Windows 图 形界面发展速度非常快,而 Unix 界的后起之秀 Linux 也急需一个可靠并且免费的图形界面。...由于 Linux 界的老大 RedHat 不喜欢 KDE/Qt 的版权,因此 RedHat 甚至专门派出了几个全职程序员来加入 GNOME 进行开发工作,于是一场同 Motif VS Openlook...当时双方的开发者在网络 上炒得天翻地覆,连 Linux 之父 Linus 只是说了一句喜欢用 KDE 都倍受指责。
TreeWidget组件可以实现多节点的增删改查,但多节点操作显然很麻烦,在一般的应用场景中基本上只使用一层结构即可解决大部分开发问题,TreeWidget组件通常可配合TabWidget组件,实现一个类似于树形菜单栏的功能...,当用户点击菜单栏中的选项时则会跳转到不同的页面上。...::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsAutoTristate); // 给父节点添加子节点...::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsAutoTristate); QTreeWidgetItem...// 当treeWidget空间双击后根据不同的菜单项选择不同的TabView页void MainWindow::on_treeWidget_itemDoubleClicked(QTreeWidgetItem
TreeWidget组件可以实现多节点的增删改查,但多节点操作显然很麻烦,在一般的应用场景中基本上只使用一层结构即可解决大部分开发问题,TreeWidget组件通常可配合TabWidget组件,实现一个类似于树形菜单栏的功能...,当用户点击菜单栏中的选项时则会跳转到不同的页面上。...::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsAutoTristate); // 给父节点添加子节点...::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsAutoTristate); QTreeWidgetItem...// 当treeWidget空间双击后根据不同的菜单项选择不同的TabView页 void MainWindow::on_treeWidget_itemDoubleClicked(QTreeWidgetItem
一、翻译 在macOS平台上,系统会为应用程序菜单添加一些额外的菜单项。先来看一些典型的例子: ?...这个是Qt Creator的菜单,系统为应用程序菜单添加了一些桌面显示操作相关的菜单项; ? 这个是Qt Designer的应用程序菜单,也添加了一些额外的菜单项。...并且我们可以注意到,这些菜单项在中文语言环境是翻译好的。那么我们自己的应用程序,怎么去让它们也翻译好呢? Qt应用程序的国际化都是通过ts文件来做翻译的。...二、菜单项重排 为了契合不同平台的使用习惯,Qt给菜单添加了Menu Role这样一个定义。通过定义不同的Menu Role,mac系统会调整应用程序的位置,以保证平台习惯的统一。...Qt库本身已经定义了几个常用的Role: ? 这些Role类型的菜单项都会被系统重新调整位置到应用菜单里。如果我们还有一些其他的菜单项,也想放到应用菜单里面,应该怎么做呢?
QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForCStrings(codec); 1.2 其次解决按钮、QLineEdit等编辑组件右击菜单等英文问题...步骤: 1)搜索qt_zh_CN.ts ,找到位于: C:\Qt\4.7.4\translations\qt_zh_CN.ts 2)在开始程序里打开qt预言家(linguist.exe) ?...2.解决Linux平台中文显示 2.1解决乱码,无法打印中文 有可能是qt配置界面的字体不支持中文 1)输入命令qtconfig 2)进入Qt配置界面,如下图所示,如果发现乱码,那就说明qt配置字体错了...PS:Linux下的中文输入法默认输入是UTF-8,所以需要保证qt creator编码格式也是UTF-8,否则输入中文会乱码 2.2其次解决按钮、QLineEdit等编辑组件右击菜单等英文问题 1)输入...从上图可以看到,qt已经为我们做好了qt_zh_CN.qm,然后将这个拷贝出来,加入到资源里 2)和Win平台一样,通过代码调用qt_zh_CN.qm 3)试验效果,发现按钮, QLineEdit右击菜单还是显示英文
} 在程序中使用ListWidget,当鼠标在之上右击时, 就会出现如上代码中的菜单,但是无论右击何处,都会相出现相同的选项。...显然,在空白处的右键菜单上面不应该出现"修改"选项,不然修改的是那一个??? 问题的关键就是判定调用右键菜单时,鼠标右击的位置处是不是一个Item。...可爱的Qt很容易实现。...需要映射到ListWidget上才可以,Qt Assist中是这样描述的。...上面的代码菜单是没有功能的。
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍tabWidget...与其他通用组件不同,TabWidget 组件只能通过在页面中添加,当需要增加新的子菜单时,可以通过右键组件选中插入页,在当前之后插入,这里我们分别增加四个子夹,此处只需要增加不需要重命名。...,当用户点击菜单栏中的选项时则会跳转到不同的页面上。...::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsAutoTristate); system_setup...::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsAutoTristate); page_layout
QMenuBar 要添加在 QMainWindow 窗口中,同样我们要继承一份 QMainWindow 类,然后在派生的类中调用 menuBar() 来创建菜单栏(MenuBar),在菜单栏中你需要创建一个主菜单...(Menu),再次在主菜单中创建子菜单(Action),这样我们就构建了一个可使用的菜单。...而工具栏一般是与菜单栏配合使用的,菜单栏有的功能在 ToolBar 下也可能会存在一份相同的功能,这是老的程序界面设计的一种风格,下面代码中主要编写了如何创建菜单、给菜单增加处理函数和快捷键功能,并用菜单来初始化一个...QMenuBar* pMenuBar = menuBar(); // 给菜单栏增加一个主菜单 File QMenu\* menuFile = pMenuBar->addMenu("&File"...) \* 第五个参数:快捷键 \*/ QAction\* newAction = menuFile->addAction(QIcon(QPixmap("d:\\\\qt-logo.png")), "
领取专属 10元无门槛券
手把手带您无忧上云