pyqt求助
1.qtdesigner设计出的窗口比例与python打开的不符,怎样修改使其等比例2.视频教程中可以在这个位置添加图片按钮,我的不可以添加,为什么或者从哪可以使用这个功能。
3.收音机按钮调试错误代码和错误如下
import sys
import PyQt5.QtWidgets as qw
from test import Ui_MainWindow
from PyQt5.QtWidgets import QMainWindow, QApplication
class MyWindow(QMainWindow, Ui_MainWindow):
def __init__(self):
super(MyWindow, self).__init__()
self.setupUi(self)
#绑定信号与槽
self.comboBox_bote.currentIndexChanged.connect(self.comboBox_bote_cb)
self.btn_send.clicked.connect(self.btn_send_cb)
self.action_start.triggered.connect(self.action_start_cb)
self.action_pause.triggered.connect(self.action_pause_cb)
self.action_stop.triggered.connect(self.action_stop_cb)
self.action_clean.triggered.connect(self.action_clean_cb)
self.radioButton_recv_ascii.toggled(self.radioButton_recv_ascii_cb)
self.radioButton_send_ascii.toggled(self.radioButton_send_ascii_cb)
#初始化窗口
self.statusbar.showMessage("status:ok")
#初始化界面
self.radioButton_recv_ascii.setChecked(True)
self.radioButton_send_ascii.setChecked(True)
def comboBox_bote_cb(self):
content = self.comboBox_bote.currentText()
print("combox's value is",content)
text = "您当前选中了%s"%content
qw.QMessageBox.information(self,"提示",text,qw.QMessageBox.Ok | qw.QMessageBox.Cancel)
def btn_send_cb(self):
print("you clicked btn_send.")
text = self.textEdit__get.toPlainText()
print("text is",text)
#增加combox的下拉选项
self.comboBox_uart.addItem(text)
def action_start_cb(self):
print("you clicked action_start")
def action_pause_cb(self):
print("you clicked action_pause")
def action_stop_cb(self):
print("you clicked action_stop")
def action_clean_cb(self):
print("you clicked action_clean")
def radioButton_recv_ascii_cb(self):
print("you selected radioButton_recv_ascii")
def radioButton_send_ascii_cb(self):
print("you selected radioButton_send_ascii")
if __name__ == '__main__':
app = QApplication(sys.argv)
myWin = MyWindow()
myWin.show()
sys.exit(app.exec_())
错误如下
File "D:\pycharm\pyqt设计\severy.py", line 19, in __init__
self.radioButton_recv_ascii.toggled(self.radioButton_recv_ascii_cb)
TypeError: native Qt signal is not callable
Process finished with exit code 1
问题1:qtdesigner设计出的窗口比例与python打开的不符,怎样修改使其等比例?
可以通过设置窗口的大小策略来实现窗口的等比例缩放。在Qt Designer中,选中窗口,并在属性编辑器中找到 "sizePolicy" 属性。设置水平方向和垂直方向的大小策略为 "Fixed",然后将水平拉伸和垂直拉伸设置为 "KeepAspectRatio"。
这样设置之后,在Python代码中创建窗口时,窗口将按照设计的比例进行缩放。
问题2:视频教程中可以在这个位置添加图片按钮,我的不可以添加,为什么或者从哪可以使用这个功能?
在Qt Designer中,你可以使用 "ToolButton" 或 "PushButton" 来添加一个图片按钮。首先,将一个 "ToolButton" 或 "PushButton" 拖放到窗口的指定位置,然后在属性编辑器中找到 "icon" 属性。点击属性旁边的小图标,选择你要设置的图片。
如果你无法添加图片按钮,可能是由于以下原因:
- 图片文件的路径不正确。请确保图片文件存在,并且提供了正确的文件路径。
- Qt Designer版本的问题。有些版本的Qt Designer可能存在一些问题,你可以尝试更新或使用其他版本的Qt Designer来解决问题。
问题3:收音机按钮调试出现错误,错误信息如下:
错误信息显示在代码的第19行,指出 self.radioButton_recv_ascii.toggled(self.radioButton_recv_ascii_cb) 这一行出现了 TypeError。这是因为 toggled 信号应该连接到一个槽函数,但是你使用了不可调用的 self.radioButton_recv_ascii_cb。
要修复这个问题,将 toggled 信号和对应的槽函数连接起来的语法应为 toggled.connect(self.radioButton_recv_ascii_cb) 而不是 toggled(self.radioButton_recv_ascii_cb)。请修改以下两个信号连接的代码:
self.radioButton_recv_ascii.toggled.connect(self.radioButton_recv_ascii_cb)
self.radioButton_send_ascii.toggled.connect(self.radioButton_send_ascii_cb)
请注意修改这两行代码后运行程序,并确保其他部分没有其他错误。希望能帮到你!如果还有其他问题,请随时提问。
球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
1. QtDesigner设计出的窗口比例与Python打开的不符,怎样修改使其等比例
这可能是由于在QtDesigner中设置的大小与在Python程序中运行时实际的分辨率有关。如果你想让窗口在不同的显示器或分辨率下保持相同的比例,你可以尝试使用 QMainWindow 的 resize() 函数来设置窗口的大小。在Python中你可以获取显示器的分辨率,然后用这些信息来计算窗口的大小。
2. 视频教程中可以在这个位置添加图片按钮,我的不可以添加,为什么或者从哪可以使用这个功能。
在QtDesigner中添加图片按钮,你需要选择QPushButton,然后在属性编辑器中设置QPushButton的icon属性,将它指向你想要使用的图像文件。如果你无法添加,可能是因为你使用的QtDesigner版本与教程中的不同,或者图像文件的路径不正确。
3. 收音机按钮调试错误代码和错误如下
你的代码中出现错误是因为你试图调用 toggled 信号,然而在Qt中,信号是不可调用的。它们是被用来触发事件的。当某个特定条件满足时,例如一个按钮被点击,一个信号就会被发射。你应该将 toggled 信号连接到一个槽函数,而不是尝试调用它。代码应该这样修改:
# 应该使用connect方法,而不是尝试调用信号
self.radioButton_recv_ascii.toggled.connect(self.radioButton_recv_ascii_cb)
self.radioButton_send_ascii.toggled.connect(self.radioButton_send_ascii_cb)
当这两个按钮的状态发生改变时(选中或未选中),就会触发对应的回调函数 self.radioButton_recv_ascii_cb 和 self.radioButton_send_ascii_cb 。
此外,你的回调函数需要接受一个参数,这个参数表示按钮的状态(是否被选中)。你需要修改 radioButton_recv_ascii_cb 和 radioButton_send_ascii_cb ,使它们接受一个参数。
def radioButton_recv_ascii_cb(self, checked):
if checked:
print("you selected radioButton_recv_ascii")
def radioButton_send_ascii_cb(self, checked):
if checked:
print("you selected radioButton_send_ascii")
在这段修改后的代码中, checked 变量是一个布尔值,表示按钮的状态。当按钮被选中时, checked 为True,否则为False。 陶远航 发表于 2023-7-22 21:26
根据你提供的代码和错误信息,我可以帮你解决问题。首先,关于你的三个问题:
1. Qtdesigner设计出的窗 ...
{:10_266:}
页:
[1]