Python制作一个简单的抽奖软件(二)
认识QT
因为都对 QT和tkinter都没用过,之前简单使用tkinter后发现,界面调整不太好弄。然后度娘了之后,QT是强大GUI库之一,很多人都推荐它。重新选择QT进行尝试。于是,就使用了PYQT5,是QT的python版本。
https://www.riverbankcomputing.com/software/pyqt/download5
使用到的基础控件认识
QApplication
每一个QT程序都需要一个QApplication的对象,所以这个是第一个需要定义的:
app = QApplication(sys.argv)
其中sys.argv是传入的入参,当然我没有用的入参。
QWidget窗体
在QT内,所以可以显示的都是Qwidget的子类,所以需要定义一个对象。
Qwidget:
class MyApp(QWidget):
def __init__(self):
super(MyApp,self).__init__()
setWindowTitle
setWindowTitle 是设置窗口标题的名字:
self.setWindowTitle("2019年年会")
frameGeometry
frameGeometry 是坐标管理,允许我们创建一个无形矩形并根据主窗口的宽高设置自身的宽度与高度。简单理解就是获取这个控件(QWidget)的几何内容(宽高位置等)
我们可以通过这个来对窗口打开时在屏幕的位置进行初始化:
def move_center(self):
m = self.frameGeometry()
w = QDesktopWidget().availableGeometry()
w_center = w.center()
m.moveCenter(w_center)
QPalette()
QPalette 是QT的调色板,可以用个QPalette来进行背景图的设置:
def init_mainwindow(self):
self.main_p = QPalette()
self.main_p.setBrush(self.backgroundRole(),QBrush(QPixmap("beijing2.jpg")))
#self.main_p.setScaledContents(True)
self.setPalette(self.main_p)
也可以通过QPalette来对图片进行处理:这里