выравнивание и код изображения не работают должным образом - PullRequest
0 голосов
/ 21 сентября 2019

Я написал следующий код, однако мой код изображения работает для одной страницы, а не для следующей, также я не могу правильно выровнять его.Может кто-то помочь мне, пожалуйста?Мое главное окно - root, в котором работает код изображения, а comp - второе окно, в котором его нет.

Кроме того, выравнивания не правильны, и я не знаю почему.Я пробовал атрибут place, но в некоторых местах он выдает ошибку non return type object is non callable.

import tkinter as tk  # use these imports so you do not overwrite other imports.
import tkinter.ttk as ttk  # use these imports so you do not overwrite other imports.
import tkinter.messagebox as messagebox  # avoid import *. Its normally not needed.
from db import DBConnect
from listComp import ListComp
from datetime import date
import time
from PIL import ImageTk,Image


conn = DBConnect()
def complaint(master):
        comp = tk.Toplevel(master)
        comp.geometry('1366x768')
        comp.title('Complaint Box')
        comp.configure(background='#333')
        style = ttk.Style()
        style.theme_use('classic')
        # background image
        bard = Image.open("flag.jpg")
        background_image = ImageTk.PhotoImage(bard)
        background_label = ttk.Label(comp, image=background_image)
        background_label.place(x=0, y=0, relwidth=1, relheight=1)
        tkvar = tk.StringVar(master)
        tkvar.set('')
        area_var = tk.StringVar(master)
        area_var.set('')
        labels = ['Full Name:','Age:','Gender:','Email_id:', 'Choose a Category:','Already Registered Ever Before:', 'Issue in Short(Up to 300 Words):']
        choices = {'Student', 'Teacher', 'Management', 'Infrastructure'}
        choices1 = {"Andra Pradesh","Arunachal Pradesh",
                "Assam Bihar","Chhattisgarh", "Gujarat", 
                "Haryana", "Himachal Pradesh", "Jammu and Kashmir", 
                "Jharkhand", "Karnataka", "Kerala", "Madya Pradesh", 
                "Maharashtra", "Manipur", "Meghalaya", "Mizoram",
                "Nagaland", "Orissa", "Punjab", "Rajasthan",
                "Sikkim", "Tamil Nadu", "Telagana", "Tripura", "Uttar Pradesh", "West Bengal"}

        for elem in ['TLabel', 'TButton', 'TRadiobutton']:  # fixed typo
            style.configure(elem, background='#35a5e1')

        for i in range(7):
            ttk.Label(comp, text=labels[i]).grid(row=i, column=0, padx=200, pady=25)

        popup_menu = tk.OptionMenu(comp, tkvar, *choices)
        popup_menu.grid(row=4, column=1, columnspan=2)
        tkvar.trace('w', lambda: change_dropdown(tkvar))  # corrected your trace command.
        popup_menu1 = tk.OptionMenu(comp, area_var, *choices1)
        popup_menu1.grid(row=1, column=3, columnspan=1)
        tkvar.trace('w', lambda: change_dropdown1(area_var))
        fullname = tk.Entry(comp, text='', width=40, font=('Arial', 14))
        fullname.grid(row=0, column=1, columnspan=2)
        age = tk.Entry(comp,text='',width=5,font=('Arial',14))
        age.grid(row=1,column=1)
        ttk.Label(comp, text="Area:").grid(row=1, column=2, padx=200, pady=25)
        span_gender = tk.StringVar(master)
        ttk.Radiobutton(comp, text='Male', value='male', variable=span_gender).grid(row=2, column=1)
        ttk.Radiobutton(comp, text='Female', value='female', variable=span_gender).grid(row=2, column=2)
        email_id = tk.Entry(comp, text='', width=40, font=('Arial', 14))
        email_id.grid(row=3, column=1, columnspan=2)
        pre_complaint = tk.StringVar(master)
        ttk.Radiobutton(comp, text='Yes', value='Yes', variable=pre_complaint).grid(row=5, column=1)
        ttk.Radiobutton(comp, text='No', value='No', variable=pre_complaint).grid(row=5, column=2)
        comment = tk.Text(comp, width=35, height=5, font=('Arial', 14))
        comment.grid(row=6, column=1, columnspan=2, padx=10, pady=10)
        ttk.Button(comp, text='List Comp.', command=show_list).grid(row=7, column=1, pady=25)
        ttk.Button(comp, text='Submit Now', command=lambda: save_data(fullname,age, span_gender,
                                                                      email_id,tkvar, pre_complaint,comment)).grid(row=7, column=2, pady=25)


def change_dropdown(tkvar):
    print(tkvar.get())

def change_dropdown1(area_var):
    print(area_var.get())


def save_data(fullname,age, span_gender,email_id, tkvar,pre_complaint,comment):
    msg1 = "Failed please fill all information!."
    if len(fullname.get()) == 0 or len(span_gender.get()) == 0:
        messagebox.showinfo(title='Add Info', message=msg1)
    else:
        msg = conn.Add(fullname.get(),age.get(), span_gender.get(), 
              email_id.get(),tkvar.get(), pre_complaint.get(),comment.get(1.0, 'end-1c'))
        messagebox.showinfo(title='Add Info', message=msg)
        # you should probably close the connection here.


def show_list():
    # cannot test this function as I do not know what `ListComp()` is doing.
    # That said this function is currently pointless as the local variable
    # will be basically deleted when the function finishes.
    listrequest = ListComp()


def tick():
    time_string = time.strftime("%H:%M:%S")
    clock.config(text=time_string)
    #clock['text'] = time
    clock.after(200, tick) # run itself again after 200 ms


root = tk.Tk()
root.geometry('1366x768')
root.title('Complaint Box')
root.configure(background='#333')
style = ttk.Style()
style.theme_use('classic')
# background image
bard = Image.open("flag.jpg")
background_image = ImageTk.PhotoImage(bard)
background_label = ttk.Label(root, image=background_image)
background_label.place(x=0, y=0, relwidth=1, relheight=1)


for elem in ['TLabel', 'TButton']:
    style.configure(elem, background='#35a5e1')

t1 = ttk.Label(root, text="Welcome To Indian Government Complaint Department",
          font="Verdana 24 bold").grid(row=0, column=0, padx=198, pady=10)
clock = tk.Label(root,font = ("times",30,"bold"),bg="RED")
clock.grid(row=0,column=0,sticky="ne")
clock.place(x=1210,y=10)
tick()
today = date.today()
print(today)
date = tk.Label(root,font = ("times",30,"bold"),bg="RED")
date.grid(row=0,column=0,sticky="nw",pady=10)
date.config(text=today)
ttk.Button(root, text='Register A Complaint', command=lambda: complaint(root)).grid(row=5, pady=175, padx=10)
ttk.Button(root, text='View Complaint', command=show_list).grid(row=7, pady=40, padx=0)
root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...