pyqt样式表语法笔记

pyqt
QSS
python
样式表

因为软件课设的原因开始学习使用pyqt4,才发现原来它也有样式表,而且语法跟css基本相同,而且一些功能实现起来感觉比js要简单方便得多。希望之后桌面软件开发过程中可能遇到的各种bug不会让我失去对pyqt的好感。

下面主要是经过我各种测试、瞎写之后得到的一些总结,也就是说一些常用的语法或者其他需要注意的地方。

  • 要写样式表可以直接在Qt Designer里编辑,官网给出的资料请参考如下链接
    QSS样式表规则

  • 编写槽函数文件

  1. from PyQt4.QtGui import QMainWindow 

  2. from PyQt4.QtCore import pyqtSignature 

  3. from PyQt4 import QtGui, QtCore 

  4. from ui import Ui_MainWindow 


  5. class MainWindow(QMainWindow, Ui_MainWindow): 

  6. def __init__(self, parent=None): 

  7. QMainWindow.__init__(self, parent) 

  8. self.setupUi(self) 


  9. @pyqtSignature("") 

  10. def on_changeColor_clicked(self): 

  11. self.l1.setStyleSheet("color:red") 

常用语法

  • 1.修改label的颜色、大小等
    self.label_id.setStyleSheet("color:red;")

  1. @pyqtSignature("") 

  2. def on_PushButton1_clicked(self): 

  3. self.l1.setStyleSheet("color:red;") 

以上代码是一小部分的截取,稍微解释一下。
@pyqtSignature("") 是装饰器,用于给槽函数传递参数。

函数名on_PushButton1_clicked表示QPushButton的id名是“PushButton1”,只要用户点击这个按键,就会触发下面的语句,即修改label(同理其id名为l1)的样式表

(以下的例子同理,除特殊情况不再做具体介绍。)

  • 2.设置文本框的内容
    self.lineEdit.setText("修改文本框内容")

  1. @pyqtSignature("") 

  2. def on_PushButton2_clicked(self): 

  3. self.lineEdit.setText("修改文本框内容") 

若要重置文本框,则可设置setText(''),即设为空字符。

  • 3.获取文本框中的内容

单行文本框lineEdit

  1. content = self.lineEdit.text() 

多行文本框textBrowser

  1. content = self.textBrowser.toPlainText() 

  • 4.向文本框的原有内容基础上添加内容

  1. self.textEdit.append("要添加的内容") 

  • 5.radioButton使用介绍

使用场景:当我们安装软件的时候,总是会有一个所谓的"协议",然后问我们同不同意,然后没办法,我们只能选同意咯~~
但是使用radioButton会遇到如下问题。
(1). 将radio控件分类
因为pyqt默认会将所有radio控件互斥,所以只能选择一个radioButton,比如当我们要做一个问卷调查的时候,我先选了第一题的答案,刚选完第二题的答案,结果第一题答案因为互斥的关系没了,那岂不是很蛋疼,所以需要用到GroupBox来解决这个问题.如下图

GroupsBox

(2). 耦合radio控件
还是以问卷为例,有的时候我们需要根据用户的选择进行相应题目的默认选择,比如他的学校选择了“北京大学”,那么属性那一栏应该选择“学霸”,而不是“学渣”

  1. @pyqtSignature("") 

  2. def on_rb1_clicked(self): 

  3. self.rb3.setChecked(True) 


  4. @pyqtSignature("") 

  5. def on_rb2_clicked(self): 

  6. self.rb4.setChecked(True) 

rb1-北京大学 rb2-家里蹲大学 rb3-学霸 rb4-学渣
setChecked(True) 表示选择该项
isChecked() 可以用于判断某选项是否被选择。若已被选择,就返回True

  • 6.dial控件和slider控件

dial控件

slider控件

二者的主要作用是会发射"int"型的数值,默认是0-99,也可在Qt designer中自己设定,所以一般这两者用到的槽函数是valueChanged(self,value),注意,不同于上面几种控件,这两种是要传参的,所以装饰器需要稍微修改一下,详见下面带代码

  1. # 装饰器需要声明传入int型的变量 

  2. @pyqtSignature("int") 

  3. def on_dial_valueChanged(self,value): 

  4. self.label_9.setStyleSheet("font-size:%dpx;" % value) 

  5. self.label_10.setText(str(value)) 

这段代码的作用是,随着用户旋转dial控件,字体大小相应变化,右边的label显示当前字体的大小(即value)

dial示例
  • 7.对话框

  • (1) 提示对话框
    QMessageBox.information(self,'标题','提示信息','OK','Cancel','其他')

解释:上面参数中的'OK','Cancel','其他'表示对话框的可选项,一般默认是OK.
另外从左至右依次返回0,1,2.
参考代码

  1. @pyqtSignature("") 

  2. def on_information_clicked(self): 

  3. info = QMessageBox.information(self, 'information', u'提示对话框', 'OK', 'Cancel', u'其他') 

  4. print(info) 

information
  • (2) 询问对话框
    QMessageBox.question(self,'标题','询问信息')

question
  • (3) 警告对话框
    QMessageBox.warning(self,'标题','提示信息')

warning
  • (4) 严重警告对话框
    QMessageBox.critical(self,'标题','提示信息')

critical
  • (5) 关于对话框
    QMessageBox.information(self,'标题','提示信息')

about
  • (6) AboutQt对话框
    QMessageBox.information(self,'标题','提示信息')
    这个是pyqt内置的,所以参数不能修改,只能像下面这样写

  1. @pyqtSignature("") 

  2. def on_aboutQt_clicked(self): 

  3. aboutQt = QMessageBox.aboutQt(self, 'AboutQt') 

aboutQt

pyqt样式表语法笔记的更多相关文章

  1. pyqt样式表语法笔记(下)--原创

    pyqt样式表语法笔记(下) python 启动界面 QSS pyqt 一.启动界面的设置 简单点~说话的方式简单点用一张静态图片作为程序启动界面为例. 原来的语句     python    7行 ...

  2. pyqt样式表语法笔记(中)--原创

    pyqt样式表语法笔记(中) pyqt QSS python 样式表 一.弹窗 在日常的各种桌面软件的使用中,我们都会碰到弹窗.例如注册,登录的时候,会有相应的信息弹窗,这里就以信息收集弹窗为例进行弹 ...

  3. pyqt样式表语法笔记(上) --原创

    pyqt样式表语法笔记(上) pyqt QSS python 样式表 因为软件课设的原因开始学习使用pyqt4,才发现原来它也有样式表,而且语法跟css基本相同,而且一些功能实现起来感觉比js要简单方 ...

  4. pyqt样式表语法笔记(中)

    pyqt样式表语法笔记(中) pyqt QSS python 样式表 一.弹窗 在日常的各种桌面软件的使用中,我们都会碰到弹窗.例如注册,登录的时候,会有相应的信息弹窗,这里就以信息收集弹窗为例进行弹 ...

  5. hive 标准hql建表语法格式

    一.标准hql建表语法格式1.官方标准语法:(hql不区分大小写,下面[]里的属性是可选属性) 具体参考官网界面:HIVE官网建表说明文档 CREATE [EXTERNAL] TABLE [IF NO ...

  6. PyQt样式设计

    QSS QSS(Qt Style Sheets)即PyQt样式表,是用来定义控件外观的一种机制.QSS内部实现大量参考了CSS,但是功能没有CSS强大,主要体现在选择器少,属性少等. 使用QSS 格式 ...

  7. dojo/dom-style样式操作学习笔记

    基础总结 一个元素的样式信息由三个来源根据层叠规则确定.三个来源分别是: 由DOM元素style特性设置的内联样式 由style元素中嵌入的样式规则 由link元素引入的外部样式表 元素的样式 任何支 ...

  8. Weex-语法笔记 一

    p.p1 { margin: 0.0px 0.0px 2.0px 0.0px; font: 14.0px "PingFang SC Semibold"; color: #45454 ...

  9. MYSQL建表语法(主键,外键,联合主键)

    在看<Learning SQL>第二版, 慢慢打实SQL的基础. 建表一: ), lname ), gender ENUM(), city ), state ), country ), p ...

随机推荐

  1. Weex系列二、显示图片

    上次我们创建了一个简单的Weex的demo. 一.常用的类 WXSDKEngine:SDK开放的绝大多数接口都在此有声明. WXLog: 用来打印日志. WXDebugTool: weex提供的对外调 ...

  2. 深度神经网络(DNN)反向传播算法(BP)

    在深度神经网络(DNN)模型与前向传播算法中,我们对DNN的模型和前向传播算法做了总结,这里我们更进一步,对DNN的反向传播算法(Back Propagation,BP)做一个总结. 1. DNN反向 ...

  3. [故障公告]博客站点遭遇超过20G的流量攻击被阿里云屏蔽

    2017年2月21日17:34,突然收到阿里云的通知: 您的IP受到攻击流量已超过云盾DDoS基础防护的带宽峰值,服务器的所有访问已被屏蔽,如果35分钟后攻击停止将自动解除否则会延期解除... 紧接着 ...

  4. MATLAB中的分类器

    MATLAB中的分类器   目前了解到的MATLAB中分类器有:K近邻分类器,随机森林分类器,朴素贝叶斯,集成学习方法,鉴别分析分类器,支持向量机.现将其主要函数使用方法总结如下,更多细节需参考MAT ...

  5. web前端学习路线推荐(讲的很细致)

    前端要学习三个部分:HTML,CSS,JavaScript(简称JS),因此首先明确三个概念:HTML是内容层,它的目的是表示一个HTML标签在页面里是个什么角色. CSS是样式层,它的目的是表示一块 ...

  6. 每天一个Linux命令(19)--find命令

    linux 下 find 命令在目录结构中搜索文件,并执行指定的操作.Linux 下 find 命令提供了相当多的查找条件,功能很强大.由于 find 具有强大的功能,所以它的选项也很多,其中大部分选 ...

  7. Vue2.0音乐播放器

    学习了几周的vuejs,学习的过程中做了一个音乐播放器WebApp (顺便听听音乐~) ,过程中也有借鉴过别人做的,感觉受益匪浅 链接 项目在线地址 : 音乐播放器 github : https:// ...

  8. w7如何安装配置多个tomcat

    最近工作比较闲,所以我就开始做自己的项目.公司的的项目用的是tomcat7 为了和公司的项目区分开,我打算再配置一个tomcat.问题也就随之而至.经过整理之后,我整理出了一个完整的流程.保证可以在w ...

  9. github学习(二)

    Git学习(一) 学习github一定要学会git,否则在后续的github运用中会出现很多问题. 1.安装Git: Mac自带Git,Windows需要自己安装. 2.配置git: 配置user.n ...

  10. golang中的reflect包用法

    最近在写一个自动生成api文档的功能,用到了reflect包来给结构体赋值,给空数组新增一个元素,这样只要定义一个input结构体和一个output的结构体,并填写一些相关tag信息,就能使用程序来生 ...