尽管qt自带了很多的控件,但是难免满足不了我们的需求
自定义控件的步骤:
1.自定义控件
2.生成控件
3.使用控件
1.自定义控件
1.1使用widget窗体,随便拉几个控件进去
1.2加入slider和lineEdit控件,并设置样式,设置lineEdit宽高都为30
1.3按ctrl + s保存,文件名slider_show
1.4将ui文件转成Python文件
使用pyuic插件将ui文件转成,Python文件(ps:这里的PyUIC插件是需要配置的)
1.5 修改slider_show.py
def __init__(self, parent):
super().__init__(parent=parent)
self.setupUi(self)
自定义控件完成
2.生成控件
2.1创建QMainWindow窗体,方式同之前QWidget窗体,保存并取名HomePage
2.2 因为之前自定义的控件是QWidget, 所以在界面拉入控件Widget,取名 sliderBar
2.3提升控件
提升之后,保存,然后将HomePage.ui转成HomePage.py,方法同上
2.4创建主文件 main.py
运行,效果已经出来了
3 使用控件
完成!!!!!!!!
from PyQt5.Qt import *
from HomePage import Ui_MainWindow
class Window(QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("自定义控件")
self.resize(500, 500)
self.setupUi(self)
self.sliderBar.horizontalSlider.sliderMoved.connect(self.settingLineFunc)
self.sliderBar.lineEdit.returnPressed.connect(self.settingSliderFunc)
def settingLineFunc(self):
self.sliderBar.lineEdit.setText(str(self.sliderBar.horizontalSlider.value()))
def settingSliderFunc(self):
self.sliderBar.horizontalSlider.setValue(int(self.sliderBar.lineEdit.text()))
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())