首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python Qt GUI设计:菜单栏、工具栏和状态栏的使用方法(拓展篇—2)

单击任何QAction按钮,QMenu对象都会发射triggered信号。...2.1、Qt Creator创建工具栏 使用Qt Designer默认生成的主窗口中不显示工具栏,可以通过单击鼠标右键来添加工具栏,如下图所示: 此时的工具栏是空的,没有组件,如下所示: 可以Qt...2.2、 工具栏类创建工具栏 QToolBar类中的常用方法如下表所示: 每当单击工具栏中的按钮,都将发射actionTriggered信号。...另外,这个信号关联的QAction对象的引用发送到连接的槽函数上。...当单击MenuBar的菜单triggered信号与槽函数processTrigger()进行绑定。当单击"show"菜单选项,会在状态栏显示提示信息,并在5秒后消失。

4.7K30

QTMFC面试题

1、QT信号槽机制的优缺点 1)QT信号槽机制的引用精简了程序员的代码量 2)QT信号可以对应多个槽(但他们的调用顺序随机),也可以多个槽映射一个信号 3)QT信号槽的建立和解除绑定十分自由...视图窗口中, 单击鼠标右键如何弹出一个右键菜单?...自动连接 – 多线程为队列连接方式, 单线程为直接连接方式 默认情况为自动连接方式. 4、描述QT中的文件流(QTextStream)和数据流(QDataStream)的区别, 他们都能帮助我们完成一些什么事情...业务处理抽象成一个业务类, 该类中创建一个业务处理函数 2. 主线程中创建一QThread类对象 3. 主线程中创建一个业务类对象 4. 业务类对象移动到子线程中 5....主线程中启动子线程 6. 通过信号槽的方式, 执行业务类中的业务处理函数 多线程使用注意事项: * 1. 业务对象, 构造的时候不能指定对象 * 2.

1.8K10
您找到你想要的搜索结果了吗?
是的
没有找到

Python:PyQt学习

API obj.deleteLater() 稍后删除,删除一个对象, 也会解除它与对象之间的关系 deleteLater()并没有将对象立即销毁,而是向主消息循环发送了一个event,下一次主消息循环收到这个...obj2.deleteLater() # 删除对象,也会解除它与对象的关系,而且是稍后删除。...信号传出多个参数 如果信号名称一样,但参数不一样,外界使用信号, 可以使用如下格式进行选择 signal_name[type] 信号名称[参数类型] from PyQt5.Qt import *...stateChanged(int state) 选中或清除选中, 发射此信号 其他信号继承类 它之所以多了个信号,是因为它有的时候是三态,所以之前的toggled 就不支持三态了。...这时就需要我们自定义信号 例如鼠标单击往往指的是左击,而不是右击,如果想要拥有右击信号,就需要自己自定义信号了!

10.5K10

19.QT-事件发送函数sendEvent()、postEvent()

event :要发送的event类型(比如:鼠标双击) //当有事件发送,将会调用receiver对象里的event()成员函数进行事件处理 sendEvent()函数是阻塞式的...,所以支持栈空间/堆空间事件对象的发送(局部对象和new分配的对象) new分配的事件对象被处理后,会由Qt内部自动摧毁 -非阻塞型事件发送 需要重写接收对象的event()事件处理函数 当事件发送后立即返回...自定义事件对象 自定义的事件类必须继承自QEvent,并且无需指定类 自定义的事件类必须拥有全局唯一的Type值,使用QEvent::User+value即可 自定义事件类示例: class StringEvent...不认识自定义事件,所以程序里需要提供处理自定义事件对象的方法 常用两种方法来处理 1.通过事件过滤器处理 通过installEventFilter()安装到目标对象 eventFilter()函数里处理事件...2.重写目标对象的event()函数 event ()函数里处理事件 示例-通过单击鼠标按钮发送自定义事件QStringEvent QStringEvent文件: class QStringEvent

92130

19.QT-事件发送函数sendEvent()、postEvent()

event :要发送的event类型(比如:鼠标双击) //当有事件发送,将会调用receiver对象里的event()成员函数进行事件处理 sendEvent()函数是阻塞式的...,所以支持栈空间/堆空间事件对象的发送(局部对象和new分配的对象) new分配的事件对象被处理后,会由Qt内部自动摧毁 -非阻塞型事件发送 需要重写接收对象的event()事件处理函数 当事件发送后立即返回...自定义事件对象 自定义的事件类必须继承自QEvent,并且无需指定类 自定义的事件类必须拥有全局唯一的Type值,使用QEvent::User+value即可 自定义事件类示例: class StringEvent...不认识自定义事件,所以程序里需要提供处理自定义事件对象的方法 常用两种方法来处理 1.通过事件过滤器处理 通过installEventFilter()安装到目标对象 eventFilter()函数里处理事件...2.重写目标对象的event()函数 event ()函数里处理事件 示例-通过单击鼠标按钮发送自定义事件QStringEvent QStringEvent文件: class QStringEvent

3.1K50

.NET简谈路由事件

我们搭建一个界面,往这个界面上堆积了很多小的窗口。这些小的窗口又堆积了一些更小的窗口。...设计具有层次性的架构,我们需要考虑这些对象不能被埋的太深,但是又要保持对象的结构原理,就像下图中所示; 1: 上图可能画的不太形象,能表达意思就行了。...2.0的开发中,控件是不支持事件路由的,比如我们订阅一个控件的事件,这个事件可能被它上面的事件所处理了;做WINFORM的朋友经常喜欢捕获鼠标单击事件,然后编写事件触发代码。...但是会发现只要这个控件被其他控件挡住了,那这个控件肯定是收不到Windows发给它的鼠标单击消息,因为事件没有路由。...其实实现原理就是事件向下传递,控件要循环的判断每一个子控件是否被订阅了相关事件,如果控件捕获到的这个事件子控件也需要,那么就可以事件向下路由了; 2: 如果我们需要框架支持路由事件的化,那么我们在前期设计的时候

37210

七夕快到了,教你用python去表白!

#每个窗体和控件都包含一个QPalette对象显示,对其做相应的设置即可 self.window_pale = QtGui.QPalette()#实例化QPalette类 self.window_pale.setBrush...接受Tab键焦点 # Qt::ClickFocus 0x2 接受鼠标单击做焦点 # Qt::StrongFocus TabFocus | ClickFocus | 0x8 接受Tab键和鼠标单击做焦点...接受Tab键焦点 # Qt::ClickFocus 0x2 接受鼠标单击做焦点 # Qt::StrongFocus TabFocus | ClickFocus | 0x8 接受Tab键和鼠标单击做焦点...0x1 接受Tab键焦点 # Qt::ClickFocus 0x2 接受鼠标单击做焦点 # Qt::StrongFocus TabFocus | ClickFocus | 0x8 接受Tab键和鼠标单击做焦点...self.buttonNO.move(self.q,self.w) #当我们关闭一个窗口PyQt中就会触发一个QCloseEvent的事件,正常情况下会直接关闭这个窗口, #但是我们不希望这样的事情发生

1.6K10

Qt 窗口消息处理机制及拦截消息的五种方法

前几篇文章中,我们介绍了一些简单的消息拦截方法,但其实在整个 Qt 框架中,不仅仅有那么几处拦截消息的方法, Qt 文档中标明了,一共有5中方法。下面就一一列举一下每种方法所在的位置以及实现方法。...; } } // 消息交还给窗口处理,避免消息丢失 QApplication::notify(obj, ev); } #ifndef CPUSHBUTTON_H...(QMouseEvent *e) { qDebug() << “截获鼠标弹起消息…”; // 表示对此消息不感兴趣,交由类的消息处理函数去处理。...button 对象 if (obj == _button) { // 判断消息是否是单击消息 if (ev->type() == QEvent::MouseButtonPress...) { // 对鼠标单击处理… } } // 把消息交还给类处理,这样消息就不会丢失 QWidget::eventFilter

53010

Qt 常用类 (9)—— QWidget

顶级窗口一定是独立窗口,但独立窗口不一定是顶级的,它可以有窗口,当窗口被析构它也会随之被析构。独立窗口一般有自己的外边框和标题栏,可以有移动、改变大小等操作。        ...2)非隐藏的窗口它的窗口可见的情况下也是可见的。         3)非隐藏的顶级窗口是可见的。        ...发送 QShowEvent 事件;当窗口隐藏发送 QHideEvent 事件。...QObject 对象析构,先发射这个信号,然后才析构它的所有子对象。        ...注意,对于鼠标移动事件 QMouseEvent 和 button 函数总是返回 Qt::NoButton,而 buttons 函数返回值则是 Qt::MouseButton 类型的 “按位或” 组合,它能反映事件发生鼠标键的按下状态

3.5K10

QT(C++)面试总结

这个多线程环境下比较危险,可能会造成奔溃。 **Qt::QueuedConnection:**槽函数控制回到接收者所在线程的事件循环被调用,槽函数运行于信号接收者所在线程。...,但QT5一些图形界面类移到了QT widgets模块中。...QWidget 1、QWidget类是所有用户界面对象的基类。 2、Widget是用户界面的基本单元:它从窗口系统接收鼠标,键盘和其他事件,并在屏幕上绘制自己。...具体来说就是,当你设计一个很大很大的工程,可能很多文件里面都会包含同一个头文件,可能你需要使用该头文件的目的完全是相同的,可是该头文件声明时,如果没有加上上面三句代码代码段的前后,当你整个工程统一编译...对于编写这些语句,一般习惯头文件名全部使用相应的大写字母,然后把.改成_,头文件名的前后都加下划线,即编写xxx.h的语句,就如下定义: #ifndef XXX_H #define XXX_H

1.9K10

2.QT-窗口组件(QWidget),QT坐标系统,初探消息处理(信号与槽)

本章主要内容如下: 1) 窗口组件(QWidget) 2) QT坐标系统 3) 初探消息处理(信号与槽) ---- 窗口组件(QWidget) 介绍 Qt以组件对象的方式构建图形用户界面 Qt中没有组件的顶级组件... (因为子类可以初始化类) QWidget类对象常作为组件或顶级组件使用 初探QWidget 1)新建工程,选择Qt Gui应用,设置类信息: ?...Qt中定义了与系统信息相关的概念 信号(signal) 由操作系统产生的消息,比如按键消息 槽(slot) 程序中的消息处理函数,用来处理信号,比如处理按键点击信号 连接(Connect) 系统信息绑定到信息处理函数...(信号到槽的连接),通过connect()函数实现,且必须发生在两个Qt对象之间,如下图所示: ?...::AutoConnection ) ; //正常情况不需要设置 //当出现sender对象的signal信号,则会自动调用receiver对象的method槽 信号与槽里,Qt引进了几个新的关键字

2.1K40

Python Qt GUI设计:信号与槽的使用方法(基础篇—7)

也是PyQt编程中对象之间进行通信的机制。...创建事件循环之后,通过建立信号和槽的连接就可以实现对象之间的通信。当信号发射(emit),连接的槽函数将会自动执行。 信号(signal)是特定情况下被发射(emit)的一种通告。...Qt编程中,通过Qt信号和槽机制对鼠标或键盘在界面上的操作进行响应处理。例如,对鼠标单击按钮的执行处理信号的操作。 PyQt的窗口控件类中有很多内置信号,开发者也可以添加自定义信号。...Qt Designer中提供了一些最基础的信号和槽设置方法,实际的项目开发中,信号和槽最佳的使用方式是Qt Designer和编程相结合,才能提高开发效率。...信号与槽中,可以通过 QObject.signal.connect一个QObject的信号连接到另一个QObject的槽函数。

2.1K50

PyQt5编程基础 2.2 信号与槽函数

信号与槽函数 信号(Signal) 信号特定情况下被发射的一种通告。举例: PushButton的信号鼠标单击发射的clicked信号 槽(Slot) 对信号相应的函数。...,表示否定的选择,例如“取消” close():关闭对话框 确定按钮与accept()槽函数关联 点击工具栏上的Edit Signals/Slots按钮 鼠标点击选中确定按钮,按住鼠标左键拖动到窗体空白区域后释放左键...底部的Signals Slots Editor出现一条数据 关闭按钮与close()槽函数关联 右边没有close按钮,要选显示从QWidget继承的信号和槽 保存Qt项目,ui文件拷贝到...__init__(parent) #调用类构造函数,创建窗体 self.ui=Ui_Dialog() #创建UI对象 self.ui.setupUi(self...这是因为QmyDialog的构造函数__init__中创建了窗体类的实例对象self.ui,并调用了setupUi()函数。而SetupUi()函数实现了这两个按钮的信号与窗体相关槽函数的关联。

1.8K30

使用Qt Designer 设计对话框(一)

使用 Qt 设计师 可以通过拖动组件,所见即所得地创建应用程序的用户界面。从pip安装 pyqt5-tools 模块即可完成Qt Designer程序的安装。...需要在自编代码中引用的部件,最好在对象查看器中,将其对象名修改成容易辨识的名字。对象查看器位于设计师程序窗口右边顶部。 ? 我们依次添加完各个部件到大概的位置,根据需要设置好对象名和各个属性。...如有必要,可以添加弹簧占位符,使得窗口尺寸被改变自动伸展,保持其它部件的位置不变。还可以添加水平或竖直分割符。 ? 之后我们要进行合理地布局。...若布局不太容易通过鼠标选择,可以在对象查看器里通过单击选择。若布局有错误,可以先打散该布局(break layout),再重新布局。 ? 布局完成时效果: ?...适当的地方,为内置的信号和槽建立 信号-槽 连接。如,连接关闭按钮的点击信号和对话框的 “接收”(并关闭)槽。 ?

4.5K20

【专业技术】还有人在用Qt开发app嘛?

.应用Qt对象系统(Qt's Meta-Object System)可以C++中的函数导入作为QML元素的属性进行访问.利用QML和Qt C++,可高效的界面逻辑与应用程序逻辑解耦. ?...中包含一个MouseArea元素.MouseArea元素描述一个可检测鼠标移动的交互区域.在按钮中我们MouseArea完全平铺到其父对象simplebutton上.anchors.fill语法用来访问叫做...当鼠标MouseArea区域内移动时会触发很多信号.其中当用户点击被许可的鼠标按钮(默认是左按钮)时会调用onClicked信号.可以设置onClicked的处理事件.本例中,当在MouseArea中点击鼠标时会调用...绑定onEntered和onExisted信号处理按钮边框颜色,鼠标悬停在按钮上为黄色,鼠标移出恢复颜色....的处理器.onButtonClick被赋予一个可执行的动作.在这个按钮范例中,onClick按钮事件中调用了onButtonClick,简单的输出一行文本.onButtonClick信号使外部对象可处理按钮的鼠标区域事件

4.6K70

Qt编写地图综合应用8-地图交互

一、前言 最常用的地图交互就几个,比如鼠标地图上按下的时候可以拾取经纬度坐标,然后传给Qt程序,再比如对设置的设备点进行单击的时候,通知Qt程序单击了哪一个设备点,好让Qt程序识别并作出反应比如弹出对应点的详细信息或者视频预览等...webkit中要实现从网页传回数据交互,只需要在网页载入完毕的信号loadFinished中注入类对象即可 webView->page()->mainFrame()->addToJavaScriptWindowObject...可设置地图是否可单击、拖动、鼠标滚轮缩放。 可设置协议版本、秘钥、主题样式、中心坐标、中心城市、地理编码位置等。 可设置地图缩放比例和级别,缩略图、比例尺、路况信息等控件的可见。...支持任意Qt版本、任意系统、任意编译器。...< QString(" var infoWindow = new BMap.InfoWindow(list.join(\"\"),{title:title, width:60});"); //单击以后弹出提示信息或者发送信号出去

1.3K01

Qt5-QtWidgets篇

什么是QT QT是一个跨平台的C++图像用户界面应用程序框架 QT1991年由奇趣科技开发 QT的优点 跨平台,几乎支持所有平台 接口简单,容易上手 一定程度上简化了内存回收机制 有很好的社区氛围 可以进行嵌入式开发...中的对象树 当创建的对象堆区的时候,如果指定的付钱是QObject 派生下来的类或者子类 派生下来的类,可以不需要管理释放操作,会将对象放入对象树 一定程度上简化了内存回收机制 QT的窗口坐标系 笛卡尔坐标系...::WA_DeleteOnClose);//55号 用于按关闭键自动释放[QWidge的对象树是关闭总的窗口才会全部释放] 列表控件 listWidget QListWidgetItem * item...将设置此状态 :checked 该控件被选中时候的状态 :hover 鼠标控件上方 :pressed 该控件被按下的状态 :disabled 该控件禁用时的状态 :first...emit发送一个信号,主界面接收 当然也可以选择记录类指针,但是必须要在构造函数中多传个参数,而不是使用默认的parent 在按钮上方有其他组件,可以使用label->setAttribute(Qt:

1.5K20

QT常见面试题,基础知识偏多

答:1.QSS统一写在一个文件中,通过程序给主窗口加载; 2.写成一个字符串中,通过程序给主窗口加载; 3.需要使用的地方,写一个字符串,加载给对象; 4.QT Designer中填写; 事件机制:...当我们重载event()函数, 需要调用类的event()函数来处理我们不需要处理或是不清楚如何处理的事件. 3) Qt对象上安装事件过滤器....一旦我们给qApp(每个程序中唯一的QApplication对象)装上过滤器,那么所有的事件发往任何其他的过滤器,都要先经过当前这个 eventFilter()....而且可以给QApplication对象安装任意个数的事件。 QT版本: 请问使用的QT版本是?有没有使用过QT4?QT5的信号槽与QT4相比有什么改进?...多态性指相同对象收到不同消息或不同对象收到相同消息产生不同的实现动作。C++支持两种多态性:编译多态性,运行时多态性。

5.3K10
领券