Я создал небольшое приложение для тестирования, но у меня возникла проблема с отображением изображения в содержимом виджета Tkinter Text.
На самом деле у меня есть два изображения, и я хочу, чтобы это было, кроме одного из них.которые должны отображаться в содержимом в соответствии с состоянием кнопки
Вот два изображения, которые я хотел бы, чтобы они отображались в Text tkinter:
http://img4.imagetitan.com/img.php?image=19_6dv6.png
или
http://img4.imagetitan.com/img.php?image=19_mj72.png
И это в зависимости от состояния флажка (флажок или не отмечен)
Если флажок отмечен, я бы хотел, чтобы дисплей был похожэто изображение:
http://img4.imagetitan.com/img.php?image=19_n2z7.png
И в случае, когда кнопка не отмечена, я бы хотел, чтобы дисплей был похож на это изображение:
http://img4.imagetitan.com/img.php?image=19_6f44.png
И так далее, данные будут изменены в соответствии с полем ввода, предназначенным для введения данных монитора.В конце я бы разделил содержимое на несколько абзацев, каждый из абзацев имеет изображение заголовка 1 или изображение 2 в соответствии с состоянием кнопки
Вот код моего приложения с python 3.6:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
from tkinter import *
import pathlib #pour creer un dossier qui n'existe encore pas
import sqlite3
import time
import datetime
root = Tk()
case_correction_ddm=IntVar()
ent_monitor_cev=StringVar()
#fonction pour la creation de la table cev
def CreerTable_cev():
#creation du dossier "bdd/Test" pour la bdd test.db
pathlib.Path('bdd/Test').mkdir(parents=True, exist_ok=True)
conn1 = sqlite3.connect('bdd/Test/Test.db')
curseur1 = conn1.cursor()
curseur1.execute('''CREATE TABLE IF NOT EXISTS cev (id_cev INTEGER PRIMARY KEY,time_cev TEXT NOT NULL,lecture_monitor_cev TEXT NOT NULL,chemin_vers_image_message_cev TEXT NOT NULL)''')
curseur1.close()
# ajout des valeurs à la table cev par la commande du bouton "Executer"
def Add_To_Table_cev():
global chemin_image_message_cev_get
if case_correction_ddm.get () :
chemin_image_message_cev_get='images/correction_approuvee.gif'
else:
chemin_image_message_cev_get='images/correction_non_approuvee.gif'
time_cev_get = str(time.strftime('%d/%m/%y à %H:%M:%S', time.localtime()))
lecture_monitor_cev_get = str(ent_monitor_cev.get())
conn2 = sqlite3.connect('bdd/Test/Test.db')
curseur2 = conn2.cursor()
curseur2.execute('''INSERT INTO cev (time_cev,lecture_monitor_cev,chemin_vers_image_message_cev) VALUES (?,?,?)''',(time_cev_get,lecture_monitor_cev_get,chemin_image_message_cev_get))
conn2.commit()
curseur2.close()
# lecture du contenu de la table cev
def AfficherTable_cev():
T_cev.delete('1.0', END)
T_cev.update()
conn3 = sqlite3.connect('bdd/Test/Test.db')
curseur3 = conn3.cursor()
for resultats_cev in curseur3.execute('SELECT * FROM cev ORDER BY id_cev DESC'):
indice1_modifie=str(resultats_cev[1]).center(70)
chaine_etoile="*************************************************************************************\n"
contenu_table_cev= str(indice1_modifie)+"\n\n"+"ddm lue par Monitor : "+ str(resultats_cev[2])+"\n\n"
#chemin de l'image est donne par str(resultats_cev[3])
photo=PhotoImage(file=str(resultats_cev[3]))
T_cev.insert(INSERT, chaine_etoile)
T_cev.image_create(INSERT, image=photo)
T_cev.insert(END,contenu_table_cev)
curseur3.close()
#appel a la creation de la table cev
CreerTable_cev()
S_cev = Scrollbar(root)
T_cev = Text(root, height=25, width=90)
S_cev.pack(side=RIGHT, fill=Y)
T_cev.pack(side=LEFT, fill=Y)
S_cev.config(command=T_cev.yview)
T_cev.config(yscrollcommand=S_cev.set)
# affichage du contenu de la table cev
AfficherTable_cev()
entry_lecture_monitor=Entry(root,textvariable=ent_monitor_cev,font=('arial',12,'bold'))
entry_lecture_monitor.pack(side=BOTTOM,pady=10 )
bouton_executer=Button(root,text='Executer',command=lambda:[Add_To_Table_cev(),AfficherTable_cev()])
bouton_executer.pack(side=BOTTOM )
case_correction=Checkbutton(root,fg='black',variable=case_correction_ddm)
case_correction.configure(text="confirmation")
case_correction.pack(side=BOTTOM)
root.mainloop()