PyQt面向?qū)ο蟠绑w設(shè)計(jì)與私有化操作
繼承的概念繼承是面向?qū)ο缶幊讨蟹浅V匾母拍?,通過(guò)繼承可以實(shí)現(xiàn)代碼的重用和擴(kuò)展。在PyQt中,我們可以通過(guò)定義父類(lèi)和子類(lèi)來(lái)實(shí)現(xiàn)繼承。比如,在下面的示例中,我們定義了一個(gè)父類(lèi)`Person`,其中包括
繼承的概念
繼承是面向?qū)ο缶幊讨蟹浅V匾母拍?,通過(guò)繼承可以實(shí)現(xiàn)代碼的重用和擴(kuò)展。在PyQt中,我們可以通過(guò)定義父類(lèi)和子類(lèi)來(lái)實(shí)現(xiàn)繼承。比如,在下面的示例中,我們定義了一個(gè)父類(lèi)`Person`,其中包括初始化屬性和一個(gè)方法`say_hello`。然后通過(guò)子類(lèi)`Student`繼承了父類(lèi)`Person`。
```python
class Person:
def __init__(self):
'Jackson'
20
def say_hello(self):
print('hello {}'.format())
class Student(Person):
pass
if __name__ '__main__':
stu Student()
print()
print()
_hello()
```
構(gòu)造函數(shù)的使用
構(gòu)造函數(shù)在Python中起著非常重要的作用,它用于初始化對(duì)象的屬性。在PyQt中,我們同樣可以定義構(gòu)造函數(shù)來(lái)初始化窗體的UI等內(nèi)容。在下面的示例中,父類(lèi)`Person`和子類(lèi)`Student`都定義了帶參數(shù)的構(gòu)造函數(shù),并演示了如何調(diào)用父類(lèi)的構(gòu)造函數(shù)。
```python
class Person:
def __init__(self, name, age):
name
age
def say_hello(self):
print('hello {}'.format())
class Student(Person):
def __init__(self, name, age, id):
super(Student, self).__init__(name, age)
id
if __name__ '__main__':
stu Student('Jackson', 20, '1128')
print()
print()
print()
_hello()
```
創(chuàng)建基礎(chǔ)窗體
在PyQt中,創(chuàng)建窗體可以通過(guò)繼承`QWidget`來(lái)實(shí)現(xiàn)。在下面的示例中,我們展示了如何創(chuàng)建一個(gè)自定義的窗體`MyWindow`,并在窗體中添加水平布局和多個(gè)按鈕,通過(guò)按鈕點(diǎn)擊事件觸發(fā)不同的操作。
```python
class MyWindow(QWidget):
def __init__(self):
super(MyWindow, self).__init__()
_ui()
def init_ui(self):
layout QHBoxLayout()
(layout)
btn1 QPushButton('按鈕1')
btn2 QPushButton('按鈕2')
btn3 QPushButton('按鈕3')
(btn1)
(btn2)
(btn3)
(_btn1)
(_btn2)
(_btn3)
def click_btn1(self):
print('click btn1')
def click_btn2(self):
print('click btn2')
def click_btn3(self):
print('click btn3')
if __name__ '__main__':
app QApplication()
window MyWindow()
()
sys.exit(app.exec_())
```
私有化操作
私有化是一種封裝的手段,可以將某些屬性或方法限制在類(lèi)的內(nèi)部訪問(wèn),外部無(wú)法直接訪問(wèn)。在PyQt中,我們可以通過(guò)在屬性或方法前加上雙下劃線`__`來(lái)表示私有化。在下面的示例中,我們定義了一個(gè)私有化方法`__init_ui()`來(lái)初始化窗體的UI。
```python
class MyWindow(QWidget):
def __init__(self):
super(MyWindow, self).__init__()
self.__init_ui()
def __init_ui(self):
layout QHBoxLayout()
(layout)
btn1 QPushButton('按鈕1')
btn2 QPushButton('按鈕2')
btn3 QPushButton('按鈕3')
(btn1)
(btn2)
(btn3)
(_btn1)
(_btn2)
(_btn3)
def click_btn1(self):
print('click btn1')
def click_btn2(self):
print('click btn2')
def click_btn3(self):
print('click btn3')
if __name__ '__main__':
app QApplication()
window MyWindow()
()
sys.exit(app.exec_())
```
通過(guò)以上示例,我們可以深入了解PyQt中面向?qū)ο蟠绑w設(shè)計(jì)的相關(guān)操作,包括繼承、構(gòu)造函數(shù)的使用以及私有化操作,這些都是在PyQt開(kāi)發(fā)中非常常見(jiàn)且重要的概念。