在PyQt5
模块中,按键作为一个元件,被创建时也拥有各式各样的方法,有时候初学者会感觉到比较混乱,因此这里特别记录一下。这里给出相应的代码,代码皆为最为纯净的模式,通俗易懂。
方法一:
# -*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
class App(QWidget):
def __init__(self, parent=None):
super(App, self).__init__(parent)
btn = QPushButton("按键1", self)
def main():
app = QApplication(sys.argv)
window = App()
window.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
我们可以看到,这里我们直接使用btn = QPushButton("按键1", self)
创建了一个按键对象,其中字符串"按键1"
代表了这个按钮的名字,self
表示我们将这个按键固定在了QWidget
上面。这种创建按键的方法是最简单的方式。
方法二:
# -*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
class App(QWidget):
def __init__(self, parent=None):
super(App, self).__init__(parent)
btn = QPushButton(self)
btn.setText("按键1")
def main():
app = QApplication(sys.argv)
window = App()
window.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
我们可以看到,这里我们单独使用btn.setText("按键1")
来对按键上的文字进行了设置,有些多此一举,但是这种写法更为清晰。上述的两种方法都添加了按键,但是并没有添加相应的布局模式,接下来,将添加的按钮加入到我们需要的布局中来。
方法三:
# -*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QHBoxLayout
class App(QWidget):
def __init__(self, parent=None):
super(App, self).__init__(parent)
btn = QPushButton()
btn.setText("按键1")
layout = QHBoxLayout(self)
layout.addWidget(btn)
def main():
app = QApplication(sys.argv)
window = App()
window.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
我们可以看到这里我们使用layout = QHBoxLayout(self)
创建了水平布局,并且将这个水平布局通过self
添加到了当前的QWidget元件上。最后将按键通过layout.addWidget(btn)
添加给了我们创建好的布局。当我们运行程序时,就会显示出相应的结果了。
方法四:
# -*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QHBoxLayout
class App(QWidget):
def __init__(self, parent=None):
super(App, self).__init__(parent)
btn = QPushButton()
btn.setText("按键1")
layout = QHBoxLayout()
layout.addWidget(btn)
self.setLayout(layout)
def main():
app = QApplication(sys.argv)
window = App()
window.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
这种方法实现的结果与方法三一致,唯一的区别是我们创建布局时没有添加self
来指定创建布局的归属,最后使用self.setLayout(layout)
语句来声明创建好的layout
的归属。这里的self
指代的便是QWidget
元件。注意:这里一定不要从QMainWindow
中继承,会出现问题,读者可以自行尝试。 如果这里有疑问, 请阅读PyQt5小程序开发之类继承。(超链接点击跳转)
到这里创建按键最基本的方法就全部被记录下来了,并且我们可以对比self
的使用来加深各个控件归属层次的理解。
码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~