Ubuntu下QT5美化QPushButton教程与图标应用示例

版权申诉
0 下载量 138 浏览量 更新于2024-11-05 收藏 36KB GZ 举报
资源摘要信息:"add_button_icon.tar.gz_QPushbutton_QT5_icon" 知识点: 1. Ubuntu操作系统: Ubuntu是一种流行的Linux操作系统发行版,它拥有用户友好的界面和强大的社区支持。在Ubuntu环境下,用户可以轻松地安装和使用各种软件和开发工具。 2. QT5框架: QT是一个跨平台的C++应用程序开发框架,它包含用于开发图形用户界面组件的库。QT5是该框架的最新主要版本,它提供了更多的特性和改进,包括对移动和嵌入式平台的支持。 3. QPushButton类: QPushButton是QT5中的一个组件类,用于创建可点击的按钮。它可以被用来响应用户点击事件,并执行相应的动作。 4. 美化QPushButton: 美化QPushButton通常涉及到改变按钮的样式和外观,例如修改按钮的背景颜色,或者在按钮上加载图片。在QT5中,可以通过修改按钮的样式表(stylesheet)或者使用CSS属性来实现按钮的美化。 5. 加载图片: 在QPushButton上加载图片,可以使按钮具有更直观的视觉效果。在QT5中,可以使用QPixmap类来加载和显示图片。 6. 修改样式: 修改QPushButton的样式通常涉及到使用QT5的样式表(stylesheet)功能。样式表是一种类似于CSS的语法,它允许开发者定义控件的外观和布局。 7. 改变背景颜色: 在QPushButton中,可以通过设置背景颜色来改变按钮的外观。在QT5中,这可以通过样式表来实现,使用background-color属性来设置颜色。 8. 窗口widgets简单程序: 在QT5中,窗口widgets是指窗口中的各种控件。一个简单的程序可能涉及到创建一个窗口,并在其中添加和配置各种控件,例如QPushButton。这样的程序通常用于演示如何使用QT5框架创建一个基本的图形用户界面。 9. 文件打包与压缩: 压缩文件是将多个文件或文件夹打包成一个文件,并使用压缩算法减小文件大小。在本例中,文件名"add_button_icon.tar.gz"表明这是一个使用gzip压缩算法压缩的tar归档文件。tar是一种在Unix和类Unix系统中广泛使用的打包工具,它可以将多个文件和文件夹组合成一个文件。而gzip是一种数据压缩程序,它可以进一步压缩tar归档文件,以减小其大小并提高传输效率。 通过上述知识点,我们可以了解到本文件可能包含了一个在Ubuntu系统下,使用QT5框架创建的示例程序。该程序展示了如何美化一个QPushButton,包括在按钮上加载图片、修改样式和改变背景颜色。这个示例程序可以作为学习和理解QT5框架中按钮组件特性的实践案例。同时,该文件是经过压缩打包的tar.gz格式,这有助于文件的存储和传输。

import FreeCAD import FreeCADGui from PySide import QtGui, QtCore Gui.activateWorkbench("PartWorkbench") FreeCAD.newDocument() class SphereDialog(QtGui.QDialog): def __init__(self): super().__init__() self.setWindowTitle("Create Sphere") self.create_widgets() def create_widgets(self): layout = QtGui.QVBoxLayout() # Radius widget radius_label = QtGui.QLabel("Radius:") self.radius_spinbox = QtGui.QDoubleSpinBox() self.radius_spinbox.setMinimum(0.1) self.radius_spinbox.setMaximum(1000.0) self.radius_spinbox.setValue(10.0) layout.addWidget(radius_label) layout.addWidget(self.radius_spinbox) # Opacity widget opacity_label = QtGui.QLabel("Opacity:") self.opacity_slider = QtGui.QSlider(QtCore.Qt.Horizontal) self.opacity_slider.setMinimum(0) self.opacity_slider.setMaximum(100) self.opacity_slider.setValue(50) layout.addWidget(opacity_label) layout.addWidget(self.opacity_slider) # Create button create_button = QtGui.QPushButton("Create") create_button.clicked.connect(self.create_sphere) layout.addWidget(create_button) self.setLayout(layout) def create_sphere(self): # Get sphere parameters radius = self.radius_spinbox.value() opacity = float(self.opacity_slider.value() / 100) # Create sphere sphere = FreeCAD.ActiveDocument.addObject("Part::Sphere", "Sphere") sphere.Radius = radius sphere.ViewObject.Transparency = int(round(opacity * 100)) # Show in 3D view sphere.ViewObject.Visibility = True FreeCADGui.SendMsgToActiveView("ViewFit") FreeCADGui.Selection.clearSelection() FreeCADGui.Selection.addSelection(sphere) FreeCADGui.SendMsgToActiveView("ViewFit") # Close dialog self.close() dialog = SphereDialog() dialog.show()代码中执行没有球体出现,请修改代码

2023-05-30 上传

import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QVBoxLayout, QHBoxLayout from PyQt5.QtCore import Qt class QueueSystem(QWidget): def __init__(self): super().__init__() self.queue = [] # 存储队列信息 self.current_number = 0 # 当前的序号 self.initUI() def initUI(self): # 创建控件 self.label_title = QLabel('排队取号系统', self) self.label_number = QLabel('当前序号:{}'.format(self.current_number), self) self.label_queue = QLabel('等待人数:{}'.format(len(self.queue)), self) self.button_get_number = QPushButton('取号', self) self.button_reset = QPushButton('重置', self) # 设置控件样式 self.label_title.setAlignment(Qt.AlignCenter) self.label_title.setStyleSheet('font-size: 24px;') self.label_number.setStyleSheet('font-size: 18px;') self.label_queue.setStyleSheet('font-size: 18px;') self.button_get_number.setStyleSheet('font-size: 18px;') self.button_reset.setStyleSheet('font-size: 18px;') # 创建布局 vbox = QVBoxLayout() vbox.addWidget(self.label_title) vbox.addWidget(self.label_number) vbox.addWidget(self.label_queue) hbox = QHBoxLayout() hbox.addWidget(self.button_get_number) hbox.addWidget(self.button_reset) vbox.addLayout(hbox) self.setLayout(vbox) # 连接信号槽 self.button_get_number.clicked.connect(self.get_number) self.button_reset.clicked.connect(self.reset) # 设置窗口属性 self.setWindowTitle('排队取号系统') self.setGeometry(300, 300, 300, 200) self.show() def get_number(self): self.current_number += 1 self.queue.append(self.current_number) self.update_info() def reset(self): self.current_number = 0 self.queue = [] self.update_info() def update_info(self): self.label_number.setText('当前序号:{}'.format(self.current_number)) self.label_queue.setText('等待人数:{}'.format(len(self.queue))) def notify(self, number): if len(self.queue) > 0 and self.queue[0] == number: self.queue.pop(0) self.update_info() print('叫号:{}'.format(number)) if __name__ == '__main__': app = QApplication(sys.argv) queue_system = QueueSystem() sys.exit(app.exec_()) 优化该代码,使窗口最大化且不可以放大缩小,具备打印取号和记录当天取号记录功能

2023-06-01 上传
2023-05-28 上传