小编Dav*_*wis的帖子

Tkinter中的grid_forget问题 - Python

基本上,似乎Tkinter中的grid_forget()方法仅适用于程序中的某些小部件而不适用于其他小部件.当我按下"重启"按钮时,我希望屏幕清除,然后再次出现启动小部件,就像用户已关闭并重新打开程序一样.

不幸的是,当我按下按钮时,一些小部件消失了,有些小部件则没有.我在所有这些方法上使用了grid_forget()方法,所以我不太清楚问题是什么.似乎保持可见的那些是我在程序运行时与之交互的那些 - 例如,条目小部件和按钮.我找不到任何详细说明这个问题的在线文档,所以我想我会请求帮助.

我的代码(或者至少是它的"重启"按钮位)如下:

    def RetryButtonClick(self):

        """Note to self: this needs to be fixed"""
        self.labelvar.set("")
        self.textvar1.set("")
        self.textvar2.set("")
        self.LabelIndiv.config(state=NORMAL)
        self.LabelIndiv.grid_forget
        self.textEntryIndiv.config(text="", state=NORMAL)
        self.textEntryIndiv.grid_forget
        self.FirstEntry.config(state=NORMAL)
        self.FirstEntry.grid_forget
        self.LastLabelB.config(state=NORMAL)
        self.LastLabelB.grid_forget
        self.ImportAll.config(state=NORMAL)
        self.ImportAll.grid_forget
        self.OpenButtonIndiv.config(state=NORMAL)
        self.OpenButtonIndiv.grid_forget
        self.OpenButtonBatch.config(state=NORMAL)
        self.OpenButtonBatch.grid_forget
        self.RetryButton.grid_forget
        self.Label3.config(text="")
        self.Label5.config(text="")
        #self.master.grid_forget()
        self.startwindow()
Run Code Online (Sandbox Code Playgroud)

self.startwindow()是定义窗口小部件及其在屏幕上的位置的函数,这似乎工作得很好.我确定问题必须在这一点,但我不知道到底是什么.我尝试将状态更改为小部件的正常状态,因为之前的功能会禁用它们,但这似乎不起作用.我也尝试在主框架上使用grid_forget self.master,但同样,只留下了我与之交互过的小部件 - 比如说- textEntryIndiv并且OpenButtonIndiv- 在屏幕上可见 - 其余的都消失了.

如果有人对此有任何想法,我会非常感谢你的帮助.如果需要的话,我可以提供更多的代码,但是有很多代码,这就是为什么我没有把这些代码放在这里.

编辑/ UPDATE:

没关系.似乎在没有我实际做任何事情的情况下修复了自己 - 实际上,它的工作没有我对代码进行任何更改.现在我觉得发布这个是不必要的.那好吧.

python grid tkinter

0
推荐指数
1
解决办法
7813
查看次数

PyQt4 - 关闭一个对话框窗口,exec_()不起作用

尝试使用PyQt4构建用户界面.弹出一个对话框窗口,当按下"确定"时,我想让它做一些关闭然后关闭的东西.不幸的是,我似乎无法让它工作 - 尝试了Dialog.exec_(),Dialog.close(),self.exec_(),self.close()的各种组合,向Dialog发出"接受"信号.accept等.到目前为止,没有任何工作,我不太清楚为什么.这是它的代码:

对话窗口初始化为此;

def begin_grab(self):
    self.GrabIm=qtg.QDialog(self)
    self.GrabIm.ui=Ui_Dialog()
    self.GrabIm.ui.setupUi(self.GrabIm)
    self.GrabIm.show()
Run Code Online (Sandbox Code Playgroud)

对话窗口;

class Ui_Dialog(object):

    def setupUi(self, Dialog):
        Dialog.setObjectName(_fromUtf8("Dialog"))
        ...
        QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), self.accept)
        QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), Dialog.reject)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def accept(self):
        if self.radioButton.isChecked()==True: #assume it is true
            #Call continuous grabber
            print "Grabbing continuously"
            Dialog.exec_() #Close it here
        else:
            #Call trigger server
            print "Grabbing triggered"
            self.exec_()
Run Code Online (Sandbox Code Playgroud)

持续发生的主要事情是在Dial()函数中使用"Dialog"是一个未知变量的消息,或者如果我使用self.exec_()或类似的消息,则说exec_()不是已知属性.如果我尝试接受(self,Dialog),并在connect语句中放置self.accept(Dialog),它也会崩溃.

任何和所有的帮助将不胜感激.

python dialog pyqt4

0
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×2

dialog ×1

grid ×1

pyqt4 ×1

tkinter ×1