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

Qt Designer基本控件介绍——Item Views(表项视图)和Item Widgets(部件)

---- 两者的区别: Item Views(Model-Based)的对象进行数据操作相对比较复杂,但处理及展示大数据量时性能高; Item Widgets的数据操作比较简单,但处理及展示大数据量时性能相对低...Item Widgets在开发中没有Item Views灵活,实际上Item Widgets就是在Item Views的基础上绑定了一个默认的存储并提供了相关方法。...),操作方便,直接调用addItem即可添加项目(ICON,文字) 详细介绍可以看博客 “Qt入门-列表框QListWidget类” “Qt5.9中控件listWidget用法(QListWidget基本用法...具有默认模型的基于项目的表视图 QTableWidget继承自QTableView。...详细介绍可看博客: “实战PyQt5: 078-撤销命令视图QUndoView” “Qt如何实现QTableView的撤消与恢复功能”

6.5K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python GUI 快速入门

    GUI 就是图形用户界面的意思,在 Python 中使用 PyQt 可以快速搭建自己的应用,使得自己的程序看上去更加高大上,学会 GUI 编程可以使得自己的软件有可视化的结果,更方便地参加 “互联网+...将路径复制到 ‘Programs' 处,注意要包含 designer.exe 的文件名。...接下来,按同样的方法添加 pyuic,pyuic 用于将 qtdesigner 生成的 .ui 文件转换成 python 可以识别的 .py 文件。...点击 File --> Save as,将当前界面保存到我们刚创建的 PyQtTest 项目文件夹下,文件名设为 QtTest.ui。...鼠标右键单击该文件调出右键菜单,单击 External tools --> PyUIC,程序会调用 pyuic,将 ui 文件转换为 py 文件,执行完成后就会在该项目中生成一个 QtTest.py 文件了

    75840

    Python Qt GUI设计:将UI文件转换为Python文件的三种妙招(基础篇—2)

    主窗口左侧是主工具栏,主工具栏提供了项目文件编辑、窗体设计、程序调试、项目设置等各种功能按钮。 在左侧主工具栏单击“Welcome(欢迎)”按钮后显示实例的界面。...单击“Examples(示例)”按钮后,工作区显示 Qt 自带的大量实例,选择某个实例就可以在 Qt Creator 中打开该项目源程序。...1、创建项目 第1步:单击 Qt Creator 的菜单项文件->新建文件或项目,出现如下图所示的对话框。在这个对话框里选择需要创建的项目或文件的模板。...Qt Creator 可以创建多种项目,在最左侧的列表框中单击“Application”,中间的列表框中列出了可以创建的应用程序的模板,各类应用程序如下: Qt Widgets Application,...,但这种文件并不是我们想要的,我们想要的是.py 文件,所以还需要使用其他方法将.ui文件转换为.py文件。

    4.2K60

    结合 Qt 信号槽机制的 Python 自定义线程类

    但其实,早在 PySide 发行之前,就已经可以实现使用 Python 语言编写 Qt 程序了,它就是 PyQt,目前最新版本为 PyQt5。...由于先前 PySide 项目不是很完善,并且缺乏文档,所以存在感并不是很高,网上有关使用 Python 编写 Qt 的资料几乎都是 PyQt 占大多数。...1.2 PySide2 与 PyQt5 的细微差异 由于 PySide2 与 PyQt 高度兼容,对于开发者来说,除了在头部引包时将 “PyQt5” 改成 “PySide2” 外,其他的代码基本无需修改...在 PyQt5中,自定义信号的如果要传参,则必须传入指定类型的参数,不能传入 None 值,这一点是非常让人头疼的,而在 PySide2 上这一点就做得非常人性化。...slot_function(): """ 定义槽函数:处理按钮被单击时的事件 其中 @Slot() 为槽函数的装饰器,其实也可以不写装饰器,但为了便于区分普通的函数,还是建议加上装饰器

    4.6K31

    PyQt5 GUI应用程序工具包入门(1)

    众所周知,PyQt5是一款优秀的GUI工具集,可用于python界面的快速开发。 本文采用Python3.6+PyCharm社区版进行PyQt5的开发。...添加外部的工具 PyQt的开发需要三个外部工具,分别为: QtDesigner:可视化界面编辑器,生成.ui文件。 PyUIC:将QtDesigner生成的UI文件转换为py文件。...PyRcc:将资源文件转换为py文件。 ?...图1 ExternalTool设置界面 单击菜单栏的“File”→“settings…”调出settings对话框 选择“Tools”→“External Tools”即显示如图1所示的工具界面,单击“...至此,Qt常用的外部工具已添加完毕。以后可从菜单栏“Tool”中调用它们,或者在项目管理界面的文件名上单击鼠标右键也可找到调用命令。

    2.2K80

    PyQt5(designer)入门教程

    1)添加文本 在左侧的“Widget Box”栏目中找到“Display Widgets”分类,将“Label”拖拽到屏幕中间的“MainWindow”画布上,你就获得了一个仅用于显示文字的文本框,如下图所示...2)传参 现在我们有了GUI的代码以及上一节中使用的“main.py”,我们可以开始编写这个汇率转换器的逻辑部分。...但是,上一节中说明了并不能通过正常的方式进行传参。因此,对于传参,有两种解决方案,一种是使用lambda,还有一种是使用functool.partial。在接下来的环节中我们会使用partial。...partial的用法如下所示: partial(function, arg1, arg2, ......) 既然使用partial传参,那么我们就要在程序(main.py)的头部加上下面这行。...0xff Info 我不是大佬,不是CS专业的,水平相对比较菜,只是一个对计算机感兴趣的业余爱好者,在这方面基本上是自学成才,毕竟兴趣是第一生产力嘛~ 我的GitHub 其中这个tree项目的GitHub

    2.6K10

    双击事件与单击事件的那些事

    双击事件与单击事件的那些事 前言 项目遇到了双击事件会同时触发单击事件的bug,还是简单记录一下。 心里话:日更太累了。以前都是单独花好几天的时间去看别人的博客,看很多博客后再慢慢输出。...但这个问题实际上是定时器的使用上有点问题。先看个小案例。...也就是说实际上只清楚了第二个定时器,所以我们之前的代码还需要清除第一个定时器才行。...el-checkbox使用注意点 双击事件和单击事件的问题处理完了,再加上一下下项目的踩坑点。 el-checkbox没有事件对象,平常的事件对象在el-checkbox上是布尔值,表示是否选中。...checked.value; } 图片 可以在直接修改绑定值的同时,手动调用change事件的处理函数来模拟触发change事件,不过,事件对象的传参就不太好模拟了。

    3.8K30

    如何用 Python 写个登陆窗口?

    最近在学习 PyQt5 GUI 编程,大致路线是找了套网课《撩课-Python-GUI编程-PyQt5》,以梳理思维导图的形式梳理了下基础知识点以及 QtDesigner 应用流程,跳过各种具体控件的细节...代码结构 控制各界面展现的是项目中的 Register_Pane.py(注册界面)、Login_Pane.py(登陆界面)、Calculate_Pane.py(功能界面),它们负责将每个界面前端布局有组件间的逻辑关系进行关联生成类...设置背景图 在生成的窗口界面中我们要为窗口添加背景图:右键单击选择 Change styleSheet 选项: ?...PyQt5 使用经验 ? 本篇是因为工作需要,上周跟着学了一周的 PyQt5 教程,仿着课程里的案例一行行代码敲出来的。...相比之前自己摸索着去用 PyQt5 编写计算器界面,此次学习最明显的提升是 MVC 框架应用再配合面向对象的思想将整个项目给划分成不同模块。

    1.9K20

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

    Qt Designer中提供了一些最基础的信号和槽设置方法,在实际的项目开发中,信号和槽最佳的使用方式是Qt Designer和编程相结合,才能提高开发效率。...在信号与槽中,可以通过 QObject.signal.connect将一个QObject的信号连接到另一个QObject的槽函数。...不再赘述,效果如下所示: 拓展学习:Python Qt GUI设计:将UI文件转换为Python文件的三种妙招(基础篇—2) UI文件编译后代码如下所示: from PyQt5 import QtCore...()信号和槽函数Form.close(),如下所示: self.pushButton.clicked.connect(Form.close) 运行程序,按钮是信号发射者,当单击按钮之后会发射一个信号,通过这行代码程序内部的通信机制知道这个按钮的单击事件被连接到窗体的关闭事件上...使用自定义的信号函数则没有这些缺陷。 在PyQt5编程中,自定义信号与槽的适用范围很灵活。

    3.2K50

    Qt入门系列(二)

    文章首发在博主知乎 ---- 作业1 需求:点击按钮打开,弹出一个新的菜单,单击按钮关闭,关闭新开的菜单 步骤: 1.新建一个QMainWindow项目 2.在1的基础上新建一个类QMainWIndow2...QTextEdit *edit=new QTextEdit(this); setCentralWidget(edit); 显示: 4.3 添加资源文件 ui->自动手动添加 1.把文件拿出来拷贝到项目目录下...可以改弹簧属性 7.对以上布局不满意,选中最大的框框,点击打破布局 8.选择Widget,将四个一起放进去,点击删格布局 9.点击各个按钮进行属性设定,比如窗口固定大小,密码隐藏等 显示: 5.2...](int state){ qDebug()<<state; }); 显示: 5.3 Item Widgets 1.List Widget 添加文本框,比如诗 //利用listWidget...写诗 QListWidgetItem *ll=new QListWidgetItem("处和日当无"); //将一行放入listWidget ui->listWidget->addItem

    2K30

    【Pyqt5】进度条QProgressBar的使用多线程更新按钮美化图片编码开机自启动

    前言 诚如标题所见,我在使用Pyqt5进行开发时,先后遇到了上面几个问题。本篇博客就用来记录遇到问题/解决问题的过程,希望能给遇到相同问题的读者一些参考。...项目背景 我的项目是构建一个可视化的交互界面,通过界面上的按钮可调用后台的爬虫程序。因此,需要通过添加一个进度条来反映当前的爬取进度。...self.pb.setRange(0, 100) self.pb.hide() 进度条更新 使用pyqt5独特的信号与槽函数可进行进度条的更新。...此外,还需要获取一个信号来标记是否结束,如果结束,则立刻将进度条设置为100%,同时弹出提示信息(本程序是弹出一个提示框) 定义两个信号: progressBarValue:用来回传当前换算后的进度数值...将后台程序放入到一个子线程中运行,同时将数值传递给主线程,在主线程中进行UI的更新。

    5.8K10

    PyQt5入门教程

    1)添加文本 在左侧的“Widget Box”栏目中找到“Display Widgets”分类,将“Label”拖拽到屏幕中间的“MainWindow”画布上,你就获得了一个仅用于显示文字的文本框,如下图所示...为了方便演示,我将文件保存到D盘。 8)生成Python代码 使用cmd将目录切到D盘并执行下面的命令。...2)传参 现在我们有了GUI的代码以及上一节中使用的“main.py”,我们可以开始编写这个汇率转换器的逻辑部分。...但是,上一节中说明了并不能通过正常的方式进行传参。因此,对于传参,有两种解决方案,一种是使用lambda,还有一种是使用functool.partial。在接下来的环节中我们会使用partial。...partial的用法如下所示: partial(function, arg1, arg2, ......) 1 既然使用partial传参,那么我们就要在程序(main.py)的头部加上下面这行。

    4.2K40

    改善应用程序性能和代码质量:通过代理模式组合HTTP请求

    然后,我们将click事件绑定到 ul 元素。每次用户单击诸如 5 之类的标记时,客户端将执行 sendHTTPRequest 函数以向服务器发出HTTP请求。...但为了演示的惯例,我们将跳过这些细节。 好了,这是一个很简单的演示,那么上面的代码有没有什么缺点呢? **** 如果您的项目非常简单,那么编写这样的代码应该没有问题。...但是,如果您的项目很复杂,并且客户端需要频繁向服务器发送HTTP请求,则此代码效率很低。 在上面的示例中,如果任何用户反复快速单击 li 元素会发生什么?...当然,为了方便演示,我将等待时间设置为2秒。如果你觉得这个等待时间太长,你可以缩短这个等待时间。 对于不需要太多实时交互的项目,2秒的延迟并不是一个巨大的副作用,但它可以减轻服务器的很多压力。...客户机实际上访问代理函数(或对象),代理函数对请求进行一些处理,然后将请求传递给目标。

    46340

    CA2000:丢失范围之前释放对象

    值 规则 ID CA2000 类别 可靠性 修复是中断修复还是非中断修复 非中断 原因 创建了 IDisposable 类型的本地对象,但该对象不会被释放,除非对对象的所有引用都超出范围。...默认情况下,此规则会分析整个代码库,但这是可配置的。 规则说明 如果在对某个可释放对象的所有引用超出范围之前未显式释放该对象,则当垃圾回收器运行该对象的终结器时,将在某个不确定的时间释放该对象。...也就是说,新构造的类型现在负责释放对象。 如果代码将其中一个类型的对象传递给构造函数,则即使在对对象的所有引用超出范围之前未释放该对象,也不会发生规则 CA2000 冲突。...;也就是说,释放对象的责任将转移到在方法中创建并返回给调用方的另一个对象或包装器 配置代码以进行分析 使用下面的选项来配置代码库的哪些部分要运行此规则。...若要禁用发出溢出检查,请在解决方案资源管理器中右键单击项目名称,然后单击“属性”。 依次单击“编译”和“高级编译选项”,然后检查“不做整数溢出检查” 。

    89330

    ES6学习之函数传参

    不过很多新特性普及度并不高,通过学习ES6的一些特性后,可以更好地将其运用到实际项目中,对于浏览器支持度,我觉得可以乐观一些,毕竟ES6是趋势,而且现在也有诸如babel这类工具可以帮助我们将ES6转换为...为了后面讲解更加清晰,这里对二者进行一个区分:Arguments指实际传递给函数的所有参数,这和其他语言里实参的概念很像,同时也和function作用域中的arguments对象所表示的参数吻合;Parameters...Arguments中的扩展运算符 在ECMAScript 5中我们经常需要使用apply()这类转换工具将数组传递给函数,比如采用Math.max()求数组中最大元素,由于该方法不支持数组作为参数,而apply...解构是ES6中的一个新特性,它允许我们将一个对象或数组直接映射到一堆变量上,由于语法和对象或数组十分相近,所以可读性很强,使用起来十分简洁高效。...(a); // 5 但当我们将一个对象(或数组)作为参数传递给函数的时候,虽然还是按值传递,但由于该值实际上映射的是此对象(或数组)在内存中的一片区域,所以当我们修改此对象的属性(或数组的某一个元素

    1.9K20

    ES6学习之函数传参

    不过很多新特性普及度并不高,通过学习ES6的一些特性后,可以更好地将其运用到实际项目中,对于浏览器支持度,我觉得可以乐观一些,毕竟ES6是趋势,而且现在也有诸如babel这类工具可以帮助我们将ES6转换为...为了后面讲解更加清晰,这里对二者进行一个区分:Arguments指实际传递给函数的所有参数,这和其他语言里实参的概念很像,同时也和function作用域中的arguments对象所表示的参数吻合;Parameters...Arguments中的扩展运算符 在ECMAScript 5中我们经常需要使用apply()这类转换工具将数组传递给函数,比如采用Math.max()求数组中最大元素,由于该方法不支持数组作为参数,而apply...解构是ES6中的一个新特性,它允许我们将一个对象或数组直接映射到一堆变量上,由于语法和对象或数组十分相近,所以可读性很强,使用起来十分简洁高效。...(a); // 5 但当我们将一个对象(或数组)作为参数传递给函数的时候,虽然还是按值传递,但由于该值实际上映射的是此对象(或数组)在内存中的一片区域,所以当我们修改此对象的属性(或数组的某一个元素

    1.6K20

    ES6学习之函数传参

    不过很多新特性普及度并不高,通过学习ES6的一些特性后,可以更好地将其运用到实际项目中,对于浏览器支持度,我觉得可以乐观一些,毕竟ES6是趋势,而且现在也有诸如babel这类工具可以帮助我们将ES6转换为...为了后面讲解更加清晰,这里对二者进行一个区分:Arguments指实际传递给函数的所有参数,这和其他语言里实参的概念很像,同时也和function作用域中的arguments对象所表示的参数吻合;Parameters...Arguments中的扩展运算符 在ECMAScript 5中我们经常需要使用apply()这类转换工具将数组传递给函数,比如采用Math.max()求数组中最大元素,由于该方法不支持数组作为参数,而apply...解构是ES6中的一个新特性,它允许我们将一个对象或数组直接映射到一堆变量上,由于语法和对象或数组十分相近,所以可读性很强,使用起来十分简洁高效。...(a); // 5 但当我们将一个对象(或数组)作为参数传递给函数的时候,虽然还是按值传递,但由于该值实际上映射的是此对象(或数组)在内存中的一片区域,所以当我们修改此对象的属性(或数组的某一个元素

    2K100

    Vue实际中的应用开发【分页效果与购物车】

    作者 | Jeskson 来源 | 达达前端小酒馆 分页组件 首先来创建项目: 分页组件,做项目不要写动手写代码,要想想业务逻辑,怎么写,如何写才是最好的呈现方式,做项目不急,要先想好整体的框架,...可以从底部出发,从最小的逻辑开始,从做这个需要考虑到什么想起,一步一步来,做好局部的功能,这个功能做好了,才去做另一个功能或者页面哦~ 分页组件我们需要的字段有哪些?...math.ceil(x)返回大于等于参数x的最小整数,即对浮点数向上取整. 单击事件,切换不同的页面的效果。...$emit('input', this.count); } vue中监听input输入值变化的事件,原生事件; this.$emit(),是触发器,用于父子组件的传值。 this....$emit方法派发的input事件,父组件监听input事件中传递的value值,并存储在父组件data中,然后父组件通过prop的形式传递给子组件value值,在子组件中绑定Input的value属性

    1.1K30

    Qt Style Sheet实践(二):组合框QComboBox的定制

    此时,我们什么都不用做就有了一个简单的组合框,如下: ?      但很显然,我们得添加一个文字,否则QComboBox不会显示任何内容。...如果不给按钮设置圆角,那么按钮的棱角将会遮挡住整体边框的圆角效果。另外,我们改变了按钮上的箭头图标。::down-arrow也是一个子组件,我们用image属性替换了系统默认的图标。对比一下: ?...嗯,整体风格上看起来协调些了。当然了,在::drop-down子组件的定制中,我们将subcontrol-position属性设置成了top, right。这样按钮就位于最右边了。...高级自定义      要实现上述效果,我们首先要做的就是将QComboBox设置为可以编辑的(setEditable())。这样,文本框中的内容才可以手动进行输入。...= new QListWidget(this); // 设置子项目代理,否则下拉框选项周围会出现虚线框 m_listWidget->setItemDelegate(new NoFocusFrameDelegate

    8.1K70
    领券