精华内容
下载资源
问答
  • 在对话框和widget窗口添加菜单

    千次阅读 2015-12-20 20:25:35
    对于QDialog或者QWidget怎么添加菜单呢?要记得,QToolBar以及QStatusBar都是QWidget的子类,因此我们就可以将其结合布局管理器添加到另外的QWidget上面。QLayout布局提供了setMenuBar()函数,可以方便的添加菜单栏...

    对于QDialog或者QWidget怎么添加菜单呢?要记得,QToolBar以及QStatusBar都是QWidget的子类,因此我们就可以将其结合布局管理器添加到另外的QWidget上面。QLayout布局提供了setMenuBar()函数,可以方便的添加菜单栏。

    //window是一个widget类
        auto layout = new QHBoxLayout(&window);//创建一个水平布局,且将这个laout manager关联到window
       layout->addWidget(spinBox);
       layout->addWidget(slider);
        auto menuBar = new QMenuBar(&window);
        menuBar->addMenu("file");
        layout->setMenuBar(menuBar);//用setMenuBar进行添加
        window.show();
    展开全文
  • 一个小例程,演示了如何用代码向QWidget和QDialog添加菜单项,以及如何响应菜单,简单易懂。
  • 在Qt中添加菜单栏,大多数都直接在QMainWindow中添加,但需要自定义标题栏后,菜单栏和标题栏就可以融合在一起了。 本文是通过几番转折才做出客户想要的效果,实现效果主要是从Qt 源码中找到的,就在QMainWindow中...
    在Qt中添加菜单栏,大多数都直接在QMainWindow中添加,但需要自定义标题栏后,菜单栏和标题栏就可以融合在一起了。
    本文是通过几番转折才做出客户想要的效果,实现效果主要是从Qt 源码中找到的,就在QMainWindow中,具体函数所在的类QLayout类中的函数setMenuBar(QWidget *),
    将QMenuBar作为参数传入到该函数中,就能实现菜单栏可伸缩了,具体效果实现在该函数中。
    展开全文
  • QT新学,参考网上资源,学会了一种为特定Widget添加右键弹出菜单的一种方法: 目标:为ui中的一个widge(变量名:tui.m_VtkWidget添加右键弹出菜单,通过分隔条为多个菜单项进行分组,示例如下 在主窗口的构造...

    QT新学,参考网上资源,学会了一种为特定Widget添加右键弹出菜单的一种方法:

    目标:为ui中的一个widge(变量名:tui.m_VtkWidget)添加右键弹出菜单,通过分隔条为多个菜单项进行分组,示例如下

    在主窗口的构造函数中添加如下代码:
        QAction* newMenu = new QAction("新建", ui.m_VtkWidget);//新建一个菜单项
        QAction* deleteMenu = new QAction("删除", ui.m_VtkWidget);//新建一个菜单项

        ui.m_VtkWidget->addAction(newMenu);//添加动作

        QAction* Separator = new QAction(ui.m_VtkWidget);//新建一个QAction,用于处理分隔条
        Separator->setSeparator(true);//设置为分隔条
        ui.m_VtkWidget->addAction(Separator);//增加分隔条


        ui.m_VtkWidget->addAction(deleteMenu);//添加动作

        connect(newMenu, SIGNAL(triggered(bool)), this, SLOT(on_action_NewMenu_triggered()));//绑定菜单函数
        connect(deleteMenu, SIGNAL(triggered(bool)), this, SLOT(on_action_DeleteMenu_triggered()));//绑定菜单函数

        ui.m_VtkWidget->setContextMenuPolicy(Qt::ActionsContextMenu);//将动作作为弹出菜单

    展开全文
  • 解决右键菜单是在鼠标按下时显示,而不是鼠标释放时显示菜单 解决过程: 方案一: 使用pyside自带的右键菜单方式,是在鼠标释放时显示菜单 self.listwidget.setContextMenuPolicy(Qt.CustomContextMenu) self....

    问题描述:

    解决右键菜单是在鼠标按下时显示,而不是鼠标释放时显示菜单


    解决过程:

    方案一:

    使用pyside自带的右键菜单方式,是在鼠标释放时显示菜单

    self.listwidget.setContextMenuPolicy(Qt.CustomContextMenu)
    self.listwidget.customContextMenuRequested[QPoint].connect(self.widget_menu)
    
    def right_widget_menu(self, point):
        popMenu = QMenu()
        popMenu.addAction(QAction(u'添加', self, triggered=self.add))
        popMenu.addAction(QAction(u'删除', self, triggered=self.remove))
        popMenu.exec_(QCursor.pos())
    

    方案二:

    使用自定义listWidget的方法,可以实现鼠标按下时显示右键菜单,但是其他的鼠标事件需要重写

    #-*-coding:utf-8-*-
     
    from maya import cmds
    from maya import mel
    from maya import OpenMayaUI as omui
    from PySide2.QtCore import *
    from PySide2.QtGui import *
    from PySide2.QtWidgets import *
    from PySide2.QtUiTools import *  
    
    class MyListWidget(QListWidget):
        def __init__(self, parent=None):
            super(MyListWidget, self).__init__(parent)
            self.popMenu = QMenu()
            self.actionA = self.popMenu.addAction(u'添加')
            self.actionB = self.popMenu.addAction(u'删除')
    
        def mousePressEvent(self, event):
            if event.buttons() == Qt.RightButton:
                self.popMenu.exec_(QCursor.pos())
                event.accept()
            else:
                pos = QCursor.pos()-self.mapToGlobal(QPoint(0, 0))
                item = self.indexAt(pos)
                self.setCurrentRow(item.row())
                pass
    
        def mouseReleaseEvent(self, event):
            if event.button() == Qt.LeftButton:
                event.accept()
    
    from shiboken2 import wrapInstance
    import os.path
    
    mayaMainWindowPtr = omui.MQtUtil.mainWindow()
    mayaMainWindow = wrapInstance(long(mayaMainWindowPtr), QWidget) #获得Maya主窗口
     
    class CreateUI(QWidget):
        def __init__(self, *args, **kwargs):
            super(CreateUI, self).__init__(*args, **kwargs)
            self.setParent(mayaMainWindow)#将新窗口设置为maya的子级
            self.setWindowFlags(Qt.Window)
            self.initUI()
     
        def initUI(self):
            self.listWidget = QMyListWidget() #使用自定义的listWidge
            self.listWidget .actionA.triggered.connect(self.add)
            self.listWidget .actionB.triggered.connect(self.remove)
     
    def main():
        ui = CreateUI()
        ui.show()
        print 'run MyFirstQt'
        return ui
     
    if __name__ == '__main__':
         main()
    
    
     

    最终方案:

    使用事件过滤器;使用自带的QlistWidget,写一个事件过滤的函数,只修改鼠标按下的事件

    class CreateUI(QWidget):
        def __init__(self, *args, **kwargs):
            super(CreateUI, self).__init__(*args, **kwargs)
            self.setParent(mayaMainWindow)#将新窗口设置为maya的子级
            self.setWindowFlags(Qt.Window)
            self.initUI()
     
        def initUI(self):
            self.listWidget = QListWidget() 
            self.listWidget.viewport().installEventFilter(self) # 安装事件过滤器
    
        def eventFilter(self, obj, event):
            if obj == self.listWidget.viewport():
                if event.type() == QEvent.MouseButtonPress:
                    if event.buttons() == Qt.RightButton:
                        self.left_widget_menu(QCursor.pos())
     
    def main():
        ui = CreateUI()
        ui.show()
        print 'run MyFirstQt'
        return ui
     
    if __name__ == '__main__':
         main()

    展开全文
  • Python3.x+Pyqt5实现主窗体里树形导航栏(QTreeWidget工具)按钮驱动分割器QSplitter动态载入多个子窗体,鼠标右键实现展开节点菜单,且第3个子窗体还实现了界面与业务逻辑分离
  • 在QWidget窗体中,随便在左侧WidgetBox找一个Widget控件拉到窗体中。 用文本编辑,找到刚才创建的对象,把QWidget改为QToolbar就可以了。 保存后,在此打开.ui文件。就可以在QtDesigner中,把QAction添加到工具...
  • 在给菜单菜单选项添加图标时,发现图标怎么都不显示。。。遂有此文,记录一下 Qt 工程添加图标资源的流程。 源代码是这样写的,但是就是不显示 openAction = new QAction(QIcon(":/img/file-open.png"), tr("&...
  • Qt界面添加菜单,工具栏以及状态栏

    千次阅读 2017-08-01 23:13:37
    原文: ... ...MFC基本上就是单文档结构/多文档结构,以及基于对话框应用程序 ...而且这两种应用程序,都可以直接通过新建一个空的qmake应用程序menuToolbarStatusBar,再添加cpp,ui或qml,都能达到自己想要的要求 而
  • PyQt5主窗口动态加载Widget实例代码

    千次阅读 2019-07-03 21:10:21
    PyQt是一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合。Qt库是目前最强大的库之一。...我们在主窗口的空白中央添加一个栅格布局并命名为MaingridLayout,等会需要将ChildrenForm放进去。 编写...
  • qt添加菜单栏工具栏

    千次阅读 2018-04-07 10:52:40
    添加菜单3.添加菜单项(动作)4.创建工具栏5.添加工具(快捷方式)6.添加状态栏7.添加文本编辑区8.添加浮动窗口如下:关键代码 QMenuBar *pmenuBar=menuBar(); //创建菜单栏 QToolBar *toolBar=addToolBar("工具栏&...
  • 一.对话框内容概要 ...1.新建项目,在ui界面添加textEdit控件(显示内容) 2.包含头文件 #include "QPushButton" #include "QStatusBar" #include "QLabel" #include "QTextEdit" #include "...
  • QT 主窗口 添加滚动条

    2021-10-13 15:34:59
    我是在主窗口之中添加了一个QScrollArea,然后将Widget放入滚动条区域中,然后在主窗口的resizeEvent事件响应中检测主窗口的变化,实时修改滚动条区域的大小和放置在滚动条区域中Widget的大小,达到了需要的效果。
  • Qt 给QWidget添加工具栏

    千次阅读 2019-05-16 19:41:31
    //将菜单添加到toolButton中 QToolBar * toolBar = new QToolBar(this); //添加工具栏 toolBar->addWidget(toolButton); //将toolButtn添加到工具栏中 Layout->addWidget(toolBar); //将工具栏放到布局中 ...
  • QT5 添加菜单

    千次阅读 2017-01-21 09:53:28
    在创建一个widget后想添加一个菜单栏(用代码的方法添加),并在菜单栏上添加菜单。那么首先要创建一个菜单栏QMenu,然后再添加菜单QAction。 代码如下:  QMenu *m_pFileMenu; m_pFileMenu = menuBar()->addMenu...
  • 作者及原代码链接:跟小豆君学Qt 跟着学习;完整实现代码;示例截图;   添加图片资源: 1. 项目文件夹下新建image文件夹; 2. 右键项目-&...3. 点击添加-&...菜单栏 QMenu 1 separa...
  • 在UE4中存在大量的菜单栏和工具栏。如下面所示 本质上上面都是菜单栏和工具栏。 菜单(Menu)的扩展点(ExtendPoints) 在Edit->Editor Preferences->Miscellaneous->Display UI ExtendsionPoints...
  • #创建菜单栏,附加一个名为File的菜单,然后把之前创建的exitAct添加到file这个菜单中 menubar = self.menuBar() fileMenu = menubar.addMenu( '&File' ) fileMenu.addAction(exitAct) #添加工具栏,状态栏 ...
  • 如果想在主界面中手动添加MenuBar,同时再添加别的控件时,一定要定义一个QWidget的控件,把除了MenuBar之外的控件放到QWidget中,否则绘制出来的界面中控件会覆盖已有的菜单栏。举个栗子,具体代码如下:void ...
  • Qt5实现多窗口切换

    2018-10-24 11:48:29
    在很多时候我们希望在一个窗口中或者一个自定义的QWidget中实现多个窗口的实现,以此来实现当功能太多时不局限于每次单独创建其窗口去显示功能模块,写了一个简单例子
  • 【PyQt5】创建具有菜单栏和按钮窗口

    千次阅读 2018-10-10 19:51:09
    【PyQt5】创建具有菜单栏和按钮窗口 通过QMainWindow中的setCentralWidget(),将默认的Widget替换。 运行结果 import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * ...
  • Qt界面添加右键菜单

    千次阅读 2016-09-08 11:06:19
    Qt中添加右键菜单其实很简单,只需在构造函数中加入以下代码即可: //Structure Widget显示右键菜单 QAction *newMenu = new QAction("新建",ui->Structure); QAction *deleteMenu = new QAction("删除",ui->...
  • 本文章由公号【开发小鸽】发布!欢迎关注!!! 老规矩–妹妹镇楼: ...一个主窗口最多只有一个菜单栏,位于主窗口的顶部,标题下面。 (一)创建菜单栏        通过QMainWi
  • 5.2.1 添加菜单

    2021-10-19 15:56:04
    QMainWindow提供了构建用户应用程序界面的框架,它由Menu Bar(菜单栏)、ToolBars(工具栏)、Dock Widget(描接窗口)、Central Widget(中心窗口)、Status Bar(状态栏)组成,如下图所示: 图5-2-1 ...
  • 最开始打算用connect连接SIGNAL(triggered())和SLOT(showcaculator),实现点击菜单中的计算器按钮弹出一个简易计算器的窗口,运行程序出现如下错误 QObject::connect: No such signal QMenu::triggered() 后来查...
  • 它在下拉菜单中显示选项列表。此小部件扩展了TextField,并且具有与TextFormField类似的行为 用法 在flutter项目的pubspec.yaml中,添加以下依赖项: dependencies : ... select_form_field : " ^2.0.0 " 在您的...
  • 工具栏添加下拉菜单 由于无法通过QAction的方式,添加按钮图标在工具栏,下拉菜单需要通过代码的方式填加到工具栏上面。 QComboBox *m = new QComboBox(this); m->addItem(tr("red")); m->addItem(tr(...
  • 本篇文章将讲解在窗体中增加菜单栏和工具栏的方法,菜单栏和工具栏是QMainWindow的组件,我们使用QMainWindow创建对象,就可以直接使用菜单栏和工具栏。由于菜单栏和工具栏会对应相应的处理代码,我们还需增加Action...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,252
精华内容 4,100
关键字:

widget窗口添加菜单