diff --git "a/01-HelloWorld-\345\237\272\346\234\254\347\273\223\346\236\204/01-HelloWorld-\347\254\254\344\270\200\344\270\252PySide6\347\250\213\345\272\217.py" "b/01-HelloWorld-\345\237\272\346\234\254\347\273\223\346\236\204/01-HelloWorld-\347\254\254\344\270\200\344\270\252PySide6\347\250\213\345\272\217.py" index c5ac625..923876d 100644 --- "a/01-HelloWorld-\345\237\272\346\234\254\347\273\223\346\236\204/01-HelloWorld-\347\254\254\344\270\200\344\270\252PySide6\347\250\213\345\272\217.py" +++ "b/01-HelloWorld-\345\237\272\346\234\254\347\273\223\346\236\204/01-HelloWorld-\347\254\254\344\270\200\344\270\252PySide6\347\250\213\345\272\217.py" @@ -6,7 +6,12 @@ class MyWidget(QtWidgets.QWidget): + """__init__ 方法将任何位置参数收集到 args 元组中, + 并将任何关键字参数收集到 kwargs 字典中, + 然后将它们作为对象的属性(self)进行赋值。""" + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) # 调用父类的初始化方法 self.hello = ["你好世界", "Hallo Welt", "Hei maailma", "Hola Mundo", "Привет мир"] @@ -31,7 +36,7 @@ def __init__(self, *args, **kwargs): self.button.clicked.connect(self.magic) # type: ignore @QtCore.Slot() - def magic(self) -> None: + def magic(self) -> None: # 设定隐式返回值 """槽函数""" self.text.setText(random.choice(self.hello)) # 从列表中随机显示一条问候语 diff --git "a/01-HelloWorld-\345\237\272\346\234\254\347\273\223\346\236\204/03-\347\261\273\347\232\204\347\273\247\346\211\277\345\205\263\347\263\273.py" "b/01-HelloWorld-\345\237\272\346\234\254\347\273\223\346\236\204/03-\347\261\273\347\232\204\347\273\247\346\211\277\345\205\263\347\263\273.py" index 46669f2..0f5755c 100644 --- "a/01-HelloWorld-\345\237\272\346\234\254\347\273\223\346\236\204/03-\347\261\273\347\232\204\347\273\247\346\211\277\345\205\263\347\263\273.py" +++ "b/01-HelloWorld-\345\237\272\346\234\254\347\273\223\346\236\204/03-\347\261\273\347\232\204\347\273\247\346\211\277\345\205\263\347\263\273.py" @@ -5,6 +5,7 @@ def get_sub_classes(class_): """递归地显示某一类的所有子类""" for subclass in class_.__subclasses__(): print(subclass) + if len(subclass.__subclasses__()) > 0: get_sub_classes(subclass) diff --git "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/01-QWidget-\347\256\200\344\273\213\344\270\216\345\210\233\345\273\272.py" "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/01-QWidget-\347\256\200\344\273\213\344\270\216\345\210\233\345\273\272.py" index d60a41b..15c826d 100644 --- "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/01-QWidget-\347\256\200\344\273\213\344\270\216\345\210\233\345\273\272.py" +++ "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/01-QWidget-\347\256\200\344\273\213\344\270\216\345\210\233\345\273\272.py" @@ -27,7 +27,7 @@ def setup_ui(self) -> None: """设置界面""" # 创建一个名为red的QWidget - red = QtWidgets.QWidget(self) # red的父控件为self,故不成为单独窗口 + red = QtWidgets.QWidget(self) # reSd的父控件为self,故不成为单独窗口 red.resize(100, 100) red.setStyleSheet("background-color: red;") red.move(300, 100) diff --git "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/03-QWidget-\344\275\215\347\275\256.py" "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/03-QWidget-\344\275\215\347\275\256.py" index 5115415..53a90ca 100644 --- "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/03-QWidget-\344\275\215\347\275\256.py" +++ "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/03-QWidget-\344\275\215\347\275\256.py" @@ -28,7 +28,7 @@ def test_01(self) -> None: self.label = QtWidgets.QLabel("只是一个Label标签", self) # 创建一个标签子控件 self.label.move(100, 200) # 相对父控件(窗口)移动位置 - self.setGeometry(200, 200, 600, 400) # 可以同时设置其位置与尺寸,计算像素时不包含框架 + self.setGeometry(200, 200, 600, 600) # 可以同时设置其位置与尺寸,计算像素时不包含框架 def test_02(self) -> None: """测试获取位置功能""" diff --git "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/04-QWidget-\345\206\205\345\256\271\350\276\271\350\267\235.py" "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/04-QWidget-\345\206\205\345\256\271\350\276\271\350\267\235.py" index 184da3d..f93a662 100644 --- "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/04-QWidget-\345\206\205\345\256\271\350\276\271\350\267\235.py" +++ "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/04-QWidget-\345\206\205\345\256\271\350\276\271\350\267\235.py" @@ -24,7 +24,7 @@ def setup_ui(self) -> None: label.setStyleSheet("background-color: cyan; font-size: 30px;") # 设置内容边距,距离左上角100 200像素 - label.setContentsMargins(100, 200, 0, 0) + label.setContentsMargins(0, 200, 0, 0) # 获取边距 print(label.contentsMargins()) diff --git "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/05-QWidget-\347\210\266\345\255\220\345\205\263\347\263\273.py" "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/05-QWidget-\347\210\266\345\255\220\345\205\263\347\263\273.py" index c86e49c..42191d4 100644 --- "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/05-QWidget-\347\210\266\345\255\220\345\205\263\347\263\273.py" +++ "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/05-QWidget-\347\210\266\345\255\220\345\205\263\347\263\273.py" @@ -33,6 +33,7 @@ def setup_ui(self) -> None: self.label_1.move(150, 50) self.label_2 = QtWidgets.QLabel() # 创建时未指定父控件 self.label_2.setPixmap(QtGui.QPixmap("../../Resources/Icons/Python_128px.png")) + self.label_2.move(100, 150) self.label_2.setParent(self) # 指定父控件 def test_01(self) -> None: @@ -41,7 +42,7 @@ def test_01(self) -> None: # 获取处于制定坐标的子控件 # 注意:若该坐标无子控件则返回None、似乎对布局管理器无效 - print(self.childAt(150, 55)) + print(self.childAt(150, 50)) # 以上方法返回的子控件都可以被操作 self.childAt(150, 55).setStyleSheet("background-color: cyan;") diff --git "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/06-QWidget-\344\270\215\345\217\257\350\247\201\344\270\216\344\270\215\345\217\257\347\224\250.py" "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/06-QWidget-\344\270\215\345\217\257\350\247\201\344\270\216\344\270\215\345\217\257\347\224\250.py" index 7ed36d8..098c360 100644 --- "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/06-QWidget-\344\270\215\345\217\257\350\247\201\344\270\216\344\270\215\345\217\257\347\224\250.py" +++ "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/06-QWidget-\344\270\215\345\217\257\350\247\201\344\270\216\344\270\215\345\217\257\347\224\250.py" @@ -28,9 +28,9 @@ def __init__(self): def setup_ui(self) -> None: """设置界面""" - self.label = QtWidgets.QLabel("标签", self) + self.label = QtWidgets.QLabel("标签", self) # 指定父组件为: MyWidget class self.label.resize(200, 200) - self.label.setStyleSheet("background-color: cyan;") + self.label.setStyleSheet("background-color: #00ff00;") # 设置背景颜色 self.label.move(50, 50) self.text_edit = QtWidgets.QTextEdit(self) @@ -46,7 +46,7 @@ def setup_ui(self) -> None: def test_01(self) -> None: """测试可见与不可见""" - @QtCore.Slot() + @QtCore.Slot() # 显示声明这是一个槽函数 def test_slot() -> None: if self.label.isVisible(): self.label.setVisible(False) diff --git "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/08-QWidget-\351\224\256\347\233\230\350\276\223\345\205\245\347\204\246\347\202\271-1.py" "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/08-QWidget-\351\224\256\347\233\230\350\276\223\345\205\245\347\204\246\347\202\271-1.py" index 1777543..07e55b0 100644 --- "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/08-QWidget-\351\224\256\347\233\230\350\276\223\345\205\245\347\204\246\347\202\271-1.py" +++ "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/08-QWidget-\351\224\256\347\233\230\350\276\223\345\205\245\347\204\246\347\202\271-1.py" @@ -69,7 +69,7 @@ def setup_ui(self) -> None: def test_01(self): """测试设置焦点功能""" # self.button.clicked.connect(self.pte.setFocus) # type: ignore - self.button.clicked.connect(self.focusNextChild) # type: ignore + self.button.clicked.connect(self.focusNextChild) # type: ignore 使用按键触发切换焦点 self.button.clicked.connect(lambda: print(self.button.hasFocus())) # type: ignore self.button.clicked.connect(lambda: print(self.le.hasFocus())) # type: ignore self.button.clicked.connect(lambda: print(self.focusWidget())) # type: ignore diff --git "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/10-QWidget-\345\205\211\346\240\207.py" "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/10-QWidget-\345\205\211\346\240\207.py" index 8e84f4d..7032cee 100644 --- "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/10-QWidget-\345\205\211\346\240\207.py" +++ "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/01-QWidget-\346\216\247\344\273\266\347\232\204\345\237\272\347\261\273/10-QWidget-\345\205\211\346\240\207.py" @@ -56,6 +56,7 @@ def test_01(self) -> None: """测试设置光标""" # 设置为自定义图案光标 + pixmap = QtGui.QPixmap("../../Resources/Icons/snowflake_128px.ico").scaled(52, 52) my_cursor = QtGui.QCursor( pixmap, 26, 26 @@ -63,14 +64,14 @@ def test_01(self) -> None: self.setCursor(my_cursor) # 设置label中的光标为Qt内置的其他光标 - self.label.setCursor(Qt.ForbiddenCursor) + self.label.setCursor(Qt.ForbiddenCursor) # 设置label中的光标 # self.label.setCursor(Qt.OpenHandCursor) def test_02(self) -> None: """测试获取光标""" current_cursor = self.cursor() - self.button.clicked.connect(lambda: print(current_cursor.pos())) # type: ignore + self.button.clicked.connect(lambda: print(current_cursor.pos())) # type: ignore 设置鼠标点击事件 if __name__ == "__main__": diff --git "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/02-Button-\346\214\211\351\222\256\346\216\247\344\273\266/02-QPushButton-\346\231\256\351\200\232\346\214\211\351\222\256/04-QPushButton-\351\273\230\350\256\244\344\270\216\350\207\252\345\212\250\351\273\230\350\256\244.py" "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/02-Button-\346\214\211\351\222\256\346\216\247\344\273\266/02-QPushButton-\346\231\256\351\200\232\346\214\211\351\222\256/04-QPushButton-\351\273\230\350\256\244\344\270\216\350\207\252\345\212\250\351\273\230\350\256\244.py" index c3a6765..c00f683 100644 --- "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/02-Button-\346\214\211\351\222\256\346\216\247\344\273\266/02-QPushButton-\346\231\256\351\200\232\346\214\211\351\222\256/04-QPushButton-\351\273\230\350\256\244\344\270\216\350\207\252\345\212\250\351\273\230\350\256\244.py" +++ "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/02-Button-\346\214\211\351\222\256\346\216\247\344\273\266/02-QPushButton-\346\231\256\351\200\232\346\214\211\351\222\256/04-QPushButton-\351\273\230\350\256\244\344\270\216\350\207\252\345\212\250\351\273\230\350\256\244.py" @@ -64,7 +64,7 @@ def setup_ui(self) -> None: QtWidgets.QMessageBox.StandardButton.Ok ) # 添加标准按钮,返回值为按钮实例 # 如果有按钮被按下,则将该按钮的文本打印到终端。 - message_box.buttonClicked.connect(lambda btn: print(btn.text())) # type: ignore + message_box.buttonClicked.connect(lambda b: print(b.text())) # type: ignore # 在主界面上添加一个弹出对话框的按钮,本节功能演示在对话框窗口中而非主窗口中呈现 pop_btn = QtWidgets.QPushButton("弹出对话框", self) @@ -77,6 +77,7 @@ def test(self): """测试按钮默认与自动默认功能""" self.ok_btn.setDefault(True) self.ok_btn.setAutoDefault(True) + # 目前没有看出这俩的区别 print(f"ok_btn.isDefault({self.ok_btn.isDefault()})") print(f"cancel_btn.isDefault({self.cancel_btn.isDefault()})") diff --git "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/02-Button-\346\214\211\351\222\256\346\216\247\344\273\266/03-QRadioButton-\345\215\225\351\200\211\346\214\211\351\222\256/02-QButtonGroup-\346\214\211\351\222\256\347\273\204.py" "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/02-Button-\346\214\211\351\222\256\346\216\247\344\273\266/03-QRadioButton-\345\215\225\351\200\211\346\214\211\351\222\256/02-QButtonGroup-\346\214\211\351\222\256\347\273\204.py" index 5b093b4..4bf11c0 100644 --- "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/02-Button-\346\214\211\351\222\256\346\216\247\344\273\266/03-QRadioButton-\345\215\225\351\200\211\346\214\211\351\222\256/02-QButtonGroup-\346\214\211\351\222\256\347\273\204.py" +++ "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/02-Button-\346\214\211\351\222\256\346\216\247\344\273\266/03-QRadioButton-\345\215\225\351\200\211\346\214\211\351\222\256/02-QButtonGroup-\346\214\211\351\222\256\347\273\204.py" @@ -50,6 +50,7 @@ def setup_ui(self) -> None: def test_01(self) -> None: """测试按钮组""" + # 将单选按钮添加进按钮组 gender_group = QtWidgets.QButtonGroup(self) # 创建按钮组 gender_group.addButton(self.rb_male) # 将按钮添加至按钮组 gender_group.addButton(self.rb_female) # 处于同一组内的按钮间有互斥性 diff --git "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/02-Button-\346\214\211\351\222\256\346\216\247\344\273\266/04-QCheckBox-\345\244\215\351\200\211\346\241\206/03-QCheckBox-\344\277\241\345\217\267.py" "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/02-Button-\346\214\211\351\222\256\346\216\247\344\273\266/04-QCheckBox-\345\244\215\351\200\211\346\241\206/03-QCheckBox-\344\277\241\345\217\267.py" index eefe0d3..357acc3 100644 --- "a/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/02-Button-\346\214\211\351\222\256\346\216\247\344\273\266/04-QCheckBox-\345\244\215\351\200\211\346\241\206/03-QCheckBox-\344\277\241\345\217\267.py" +++ "b/03-QtWidgets-\345\270\270\347\224\250\346\216\247\344\273\266/02-Button-\346\214\211\351\222\256\346\216\247\344\273\266/04-QCheckBox-\345\244\215\351\200\211\346\241\206/03-QCheckBox-\344\277\241\345\217\267.py" @@ -37,7 +37,7 @@ def test_slot(state: int) -> None: elif state == Qt.PartiallyChecked.value: print("复选框被部分选中!") - self.cb.stateChanged.connect(test_slot) # type: ignore + self.cb.stateChanged.connect(test_slot) if __name__ == "__main__":