如何在框架顶部的Tkinter中保留一个标签小部件(页面标题)

问题描述:

我在框架本身有一个带有标题(问卷)的Tkinter框架,以及我从数据库中提取的一堆问题。如何在框架顶部的Tkinter中保留一个标签小部件(页面标题)

所有问题都已添加到字典中,以便它们可以与变量关联,这意味着我可以使用for循环为问题创建标签小部件。

问题标签显示正常,标题显示正常。问题在于问题出现在应该位于顶部的标题“问卷”之前。

def QuestionnaireTitle(self): 

    Title = Label(self, text='Questionnaire', bg='firebrick', fg='white', width=50, font=('MS', 24, 'bold')) 
    Title.grid(row=0,column=0, columnspan=4, rowspan=1) 

def QuestionnaireQuestions(self): 


    db = connect("openDay.db") 

    allQuestions = [] 
    questionsDict = dict() 

    #Questions 

    for i in range(13): 
     j = get_questionniare_question(db,i)[0] 
     allQuestions.append(j) 
     for a in range(len(allQuestions)): 
      questionsDict["Q"+str(i)] = allQuestions[i] 

    for key,value in questionsDict.items(): 
     i+=1 
     key = Label(text=value, font=('Helvetica', 12, 'bold')) 
     key.grid(row=i, sticky=W) 

我知道,当你从一个文本文件中提取文本或CSV你可以使用这样的事情,以防止这种情况发生

lines = csv_file.readlines() 
    the_title = lines[0] 

    the_rest = lines[1:] 

的事情是否有使用数据库的类似的方法?还是完全一样?我是否必须将“调查问卷”放在数据库本身中才能像这样工作?或者它可以保留在Python脚本本身作为标签?

如果问题不是那么清楚的话,我们应该考虑一下!

我会尝试在主要调用下放置“QuestionnaireTitle”。不要让它成为函数调用,而是在定义root之后放置行。既然你没有显示你的代码的一部分,这里是我如何做到这一点在我的:

if __name__ == '__main__': 

    root = Tkinter.Tk() 
    root.minsize(width=250, height=50) 

    Title = Label(self, text='Questionnaire', bg='firebrick', fg='white', width=50, font=('MS', 24, 'bold')) 
    Title.grid(row=0,column=0, columnspan=4, rowspan=1) 

希望它有帮助!

+0

立即工作。干杯! – Treeno1

+0

太棒了!很高兴它的工作。你能把这个标记为正确的答案(它旁边的绿色复选标记),以便其他人知道,并且这将有助于我的声望;) –