我们接下来的讨论,会基於读者已经先读过我 day5 文章 的架构下去进行程序设计
如果还不清楚我程序设计的逻辑 (UI.py、controller.py、start.py 分别在干麻)
建议先阅读 day5 文章後再来阅读此文。
https://www.wongwonggoods.com/python/pyqt5-5/
https://github.com/howarder3/ironman2021_PyQt5_photoshop/tree/main/day14_slider
今天我们要来实作一个简单的功能,制作可以滑动的滑条
我们在 input Widgets 中找到 Horizontal Slider,将他移进画面中,
另外加入一个 Qlabel 作为显示用。
读者们可以开始自行设计自己的介面罗,以上为我的示范。
一样的编译指令,我们加上 -x (也可不加),
我们就可以先检视看看转换後的视窗是不是跟我们想像的一样。
pyuic5 -x day14.ui -o UI.py
一样,这程序只有介面 (视觉上的呈现),没有任何互动功能
python UI.py
这样我们的介面就大致出来罗!
这次的功能很简单,只有两个物件
我们继续修改我们 day12 的程序码
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtGui import QImage, QPixmap
from PyQt5.QtWidgets import QFileDialog
from PyQt5.QtCore import QThread, pyqtSignal
import time
from UI import Ui_MainWindow
class MainWindow_controller(QtWidgets.QMainWindow):
def __init__(self):
super().__init__() # in python3, super(Class, self).xxx = super().xxx
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.setup_control()
def setup_control(self):
self.ui.horizontalSlider.valueChanged.connect(self.getslidervalue)
def getslidervalue(self):
self.ui.label.setText(f"{self.ui.horizontalSlider.value()}")
print(self.ui.horizontalSlider.value())
self.ui.horizontalSlider.valueChanged.connect(self.getslidervalue)
我们一样将 self.horizontalSlider 连结 getslidervalue() 的功能,
等等我们将取得变化後的实作,制作在此处。
记得要多呼叫 valueChanged 这个方法,
我们才能够透过侦测滑动条值的变化,直接同步反应数值的改变到画面上。
我们可以使用 self.ui.horizontalSlider.value() 取得现在滑动条的数值,
而 self.getslidervalue() 已经定义好是有变化才会触发的功能,
所以我们就藉由 self.ui.label.setText() 把对应的数值写进 label 当中。
照我们 day5 的程序架构,我们执行
python start.py
(因为我们有写 print,所以在 terminal 中也会同步印出数据,让我们能够观察变化。)
★ 本文也同步发於我的个人网站(会有内容目录与显示各个小节,阅读起来更流畅):【PyQt5】Day 14 使用 QSlider 制作可拖曳的滑条
<<: [DAY14] 在 Azure Machine Learning 里 Label data(下)
>>: [第十四只羊] 迷雾森林舞会VII 开完房间後走进房间
Python - Video to Ascii 影片转 Ascii 套件参考笔记 参考资料 Gith...
在我们定义method时,若需要有外来的数值input进来运算,就会定义parameter: int...
https://leetcode.com/problems/two-sum/description...
今天来用前几天使用判断肿瘤良性恶性的例子来执行random forest,一开始我们一样先建立sco...
先来看看目前我们专案的资料夹结构: 前面有提到,ActiveRecord 所建立的 model 与 ...