pushbutton

【Qt开发】StyleSheet使用总结

人盡茶涼 提交于 2021-02-19 08:26:17
概述 转眼七年过去了,我是一个彻底拥抱过MFC的人,记得老大的一个需求要把按钮做成圆角,并添加背景颜色,做前端html的可能认为很简单,然而放到MFC上那可真的是很...很麻烦的,自定义类继承Button ,新手估计还搞不定,怎么也有上百行代码,实在不友好,Qt诞生大大简化了这些工作,只需要使用QSS(Qt Style Sheet)就可以轻松做到,最近详细了解了QSS,做了个百度网盘的登录界面,整理好我会把源码放出来,供大家参考。 QSS语法 background-color:rgb(6, 168, 255);    背景色 color:red;                字体颜色 border-radius:5px;            边框圆角半径 border:2px solid green;         边框2像素,实现,绿色 font:10pt;               字体大小10 设置QSS方法 方法一:UI界面设置 鼠标到按钮上右键,"改变样式表",在编辑样式表对话框中添加QSS样式。 方法二:程序添加 每一个控件都有 setStyleSheet (const QString &styleSheet)方法,样式字符串直接传参即可,例: ui.pushButton1->setStyleSheet("QPushButton{background-color

HTML及CSS笔记

风格不统一 提交于 2021-02-08 12:02:54
目标:Front-end Engineer → Full-stack Engineer 浏览器及其内核 HTML 开发工具 sublime 轻量级的ide 1.使用技巧 h${}*6 vsCode 写大项目时使用 1.使用技巧 SEO-搜索引擎优化 <html lang= "en"> < head > < meta charset = " utf-8 " > <!-- charset:编码字符集--> < title > 我是title </ title > < meta content = " 服装 " name = " keywords " > < meta content = " 这是一件你穿了就不想脱的衣服 " name = " description " > </ head > < body > <!-- 告诉搜索引擎爬虫,我们的网站是关于什么内容的 --> <!-- SEO --> </ body > </ html > 路径 1. 网上url <img src="https://xxxxxx.jpg" style="width:200px;"> 2.本地的绝对路径 D:/a/b/test.html D:/a/b/c/123.jpg <img src="D:/a/b/c/123.jpg>" 3. 本地的相对路径 …/来表示上一级目录 D:/a/b/test.html D

持续交付体系在高德的实践历程

可紊 提交于 2020-12-19 04:02:22
1. 前序 对于工程团队来说,构建一套具有可持续性的、多方面质量保证的交付体系建设,能够为业务价值的快速交付搭建起高速公路,也能为交付过程中的质量起到保驾护航的作用。本文为大家介绍持续交付体系在高德的演进与落地。 2. 持续交付 正如前序中所总结的,我们需要构建一套持续交付体系,从而保证在质量不下降的前提下,在业务价值交付上有更进一步的突破。那么我们先了解一下什么是持续交付以及集团在持续交付的建设上有哪些指引。 2.1 持续交付概念 引用Martin Fowler大师在2013年时发表的文章,对于持续交付的概念有如下的解释:Continuous Delivery is a software development discipline where you build software in such a way that the software can be released to production at any time. 在上述文中,可以提取几个关键词: 软件开发的标准化准则 可以做到随时随地的发布 什么情况下就可以算是团队达到了持续发布的状态呢?Martin Fowler大师也给出了标准的答案: Your software is deployable throughout its lifecycle Your team prioritizes keeping the

vs2017+QT修改完ui界面后,程序中ui对象没有更新,解决方法

淺唱寂寞╮ 提交于 2020-12-15 15:07:11
vs2017+QT修改完ui界面后,程序中ui对象找不到控件,解决方法。 例如:在qtDesigner中添加button按钮,objectName为pushButton_Start。 第一步 :单击菜单栏“窗体”->"查看代码" 第二步 :单击保存图标,若已存在ui_xxx.h文件,就替换掉。 第三步:返回vs编辑界面,鼠标右键工程名,单击“重新扫描解决方案”,即可刷新ui对象,输入ui->后在提示栏中找到pushButton_Start对象。 来源: oschina 链接: https://my.oschina.net/u/4285053/blog/4807714

Qt 信号槽

生来就可爱ヽ(ⅴ<●) 提交于 2020-12-14 09:15:44
Qt4与Qt5的信号槽有些不同: 1. Qt4的槽函数必须使用slots关键字声明,而Qt5中已经不再需要了,槽函数可以是任何能和信号关联的成员函数。 2. Qt4指定信号函数和槽函数需用SIGNAL和SLOT宏,它们的功能是将参数转换为const char*类型。而Qt5中传递的是信号函数和槽函数的指针。 3. Qt5支持编译时进行检查,信号或槽的拼写错误、槽函数参数多余信号函数等错误可以在编译时就检查出来,而Qt4不行。而且参数类型不需要一致,只要能隐式转换就行。 4. Qt5还支持C++11的lambda表达式,可以在关联时直接编写信号发射后要执行的代码,不再需要声明定义槽函数了。 关于connect函数的第五个参数: 有五种类型: Qt::AutoConnection 自动关联 (默认) 如果接受者和发送者在同一个线程,则使用Qt::DirectConnection ,否则使用Qt::QueuedConnection。 在信号被发送时决定使用哪种关联类型。 Qt::DirectConnection 直接关联 发射完信号后立即调用槽,只有当槽执行完后,发射信号处后面的代码才能继续执行。 Qt::QueuedConnection 队列关联 当控制返回接受者所在的线程才执行槽函数,而且无论槽执行与否,发射信号处后面的代码都会立即执行。 Qt:

PyQt5简介及demo

ⅰ亾dé卋堺 提交于 2020-11-11 04:26:34
PyQt5说明   pyqt5 是一套 Python 绑定 Digia QT5 应用的框架。它可用于 Python 2 和 3。本教程使用 Python 3。Qt 库是最强大的 GUI 库之一。pyqt5 的官方网站 http://www.riverbankcomputing.co.uk/news 。   pyqt5 做为 Python 的一个模块,它有 620 多个类和 6000 个函数和方法。这是一个跨平台的工具包,它可以运行在所有主要的操作系统,包括 UNIX,Windows,Mac OS。pyqt5 是双重许可。开发者可以在 GPL 和商业许可之间进行选择。   pyqt5 的类别分为几个模块,包括以下: QtCore:包含了核心的非 GUI 功能。此模块用于处理时间、文件和目录、各种数据类型、流、URL、MIME 类型、线程或进程。 QtGui:包含类窗口系统集成、事件处理、二维图形、基本成像、字体和文本。 QtWidgets:包含创造经典桌面风格的用户界面提供了一套UI元素的类。 QtMultimedia:包含的类来处理多媒体内容和 API 来访问相机和收音机的功能。 QtBluetooth:包含类的扫描设备和连接并与他们互动。描述模块包含了网络编程的类。这些类便于 TCP 和 IP 和 UDP 客户端和服务器的编码,使网络编程更容易和更便携。 QtNetwork

Qt中在控件上绘图

余生颓废 提交于 2020-10-26 21:24:51
1.总述 Qt的要在当前类对应的窗口上绘图一般需要重写paintEvent函数,但是Qt的事件过滤器默认是把父窗口下子控件的绘图事件给过滤了的,因此重写父窗口的paintEvent函数是无法在子控件上进行绘图的,下面举一个例子。 1 void MainWindow::myDraw(QLabel * label) 2 { 3 QPainter painter(label); 4 painter.setPen(Qt::gray); 5 painter.setBrush(Qt::green); 6 painter.drawRect(10,10,20,20); 7 } 8 9 void MainWindow::paintEvent(QPaintEvent *) 10 { 11 myDraw(ui->label); 12 myDraw(ui->label_2); 13 } 如上所示,重写MainWindow的paintEvent(QPaintEvent *)函数,然后在里面对子控件绘图是没有用的。 2.解决方案 还是以上面的例子为例。 法一 自己定义一个Mylabel类继承于QLabel,然后在这个类中重写paintEvent(QPaintEvent *)函数,并在里面绘图。然后在ui界面中把对应的QLabel提升为Mylabel。这种方式不是很灵活,因此不多介绍,详见https:/

Qt信号槽问题汇总

核能气质少年 提交于 2020-10-26 00:05:03
1. 发送一次信号,调用多次槽函数问题 在同一个类中,多次链接QObject::connect(sender, SIGNAL(signalSender(QString, int)), receiver, SLOT(onSignalSender(QString, int))); 会导致发送一次信号signalSender(QString, int) 多次调用槽函数(onSignalSender(QString, int),如果链接了一次,那么,发送一次signalSender信号,就调用一次onSignalSender槽函数,如果链接了两次,那么发送一次signalSender信号,就调用两次onSignalSender槽函数,。。。以此类推。 2. 信号的直接调用问题 在Qt中,一般发送信号都是通过 emit signalSender() 方式发送的,其实也可以通过直接调用信号 signalSender()进行发送,此时,如果调用了信号signalSender,且该信号通过connect进行了链接,则会进入对用链接的槽函数中执行。 注意:在多线程中,直接调用是在调用者线程中执行,发信号是在接收者线程中执行 3. 信号是可以连接另一个信号的 例如 connect(push_button, &qpushlbutton::clicked, this, & qwidget ::

将Qt Designer的ui文件转换为PySide2使用的.py文件

自闭症网瘾萝莉.ら 提交于 2020-10-25 23:03:08
Qt Designer 设计的ui文件,就是一个xml文件,通过pyside-uic可以转换成标准的.py文件 。通过QtDesigner创建的ui如图: 我们切入正题: 1:首先要保证将pyside2-uic.exe加到环境变量Path中。根据我的Python,PySide2安装路径。设置具体如下图: 2:使用PySide2中的QtDesigner工具创建具体的ui文件。QtDesigner路径如下: 3:将创建的ui文件使用命令生成对应的.py文件。先从系统的cmd进入到ui文件的位置,然后输入命令“ pyside2-uic ****.ui -o ****.py ”进行文件转换: 运行正常。生成的py文件代码如下: # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'untitled.ui', # licensing of 'untitled.ui' applies. # # Created: Mon May 11 20:42:28 2020 # by: pyside2-uic running on PySide2 5.12.6 # # WARNING! All changes made in this file will be lost! from PySide2

Qt中在控件上绘图

爱⌒轻易说出口 提交于 2020-10-25 17:39:07
1.总述 Qt的要在当前类对应的窗口上绘图一般需要重写paintEvent函数,但是Qt的事件过滤器默认是把父窗口下子控件的绘图事件给过滤了的,因此重写父窗口的paintEvent函数是无法在子控件上进行绘图的,下面举一个例子。 1 void MainWindow::myDraw(QLabel * label) 2 { 3 QPainter painter(label); 4 painter.setPen(Qt::gray); 5 painter.setBrush(Qt::green); 6 painter.drawRect(10,10,20,20); 7 } 8 9 void MainWindow::paintEvent(QPaintEvent *) 10 { 11 myDraw(ui->label); 12 myDraw(ui->label_2); 13 } 如上所示,重写MainWindow的paintEvent(QPaintEvent *)函数,然后在里面对子控件绘图是没有用的。 2.解决方案 还是以上面的例子为例。 法一 自己定义一个Mylabel类继承于QLabel,然后在这个类中重写paintEvent(QPaintEvent *)函数,并在里面绘图。然后在ui界面中把对应的QLabel提升为Mylabel。这种方式不是很灵活,因此不多介绍,详见https:/