鱼C论坛

 找回密码
 立即注册
查看: 842|回复: 3

pyqt求助

[复制链接]
抢楼 抢楼 本帖为抢楼帖,欢迎抢楼! 
发表于 2023-7-22 21:26:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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

qtdesigener

qtdesigener

python

python

网络教程

网络教程
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

2#
无效楼层,该帖已经被删除
发表于 2023-7-22 21:26:47 | 显示全部楼层

回帖奖励 +100 鱼币

问题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)
请注意修改这两行代码后运行程序,并确保其他部分没有其他错误。希望能帮到你!如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-22 21:27:04 | 显示全部楼层
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。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-22 22:16:48 | 显示全部楼层
陶远航 发表于 2023-7-22 21:26
根据你提供的代码和错误信息,我可以帮你解决问题。首先,关于你的三个问题:

1. Qtdesigner设计出的窗 ...

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 10:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表