pythonにてtree初作成中ですが、質問です。
GUIの[商品名]に入力されたテキスト2行を、そのまま表示したいです。
現状のコードのようにやった結果、1行目、2行目分けての取得は出来ているのですが、挿入後の表示は1行になってしまいます。
現状
treeに挿入する際、txt4(商品名)で2行に分けて入力しても挿入された後は1行で表示されてしまいます。
例.グラス大きなコップ
python
1hinmei = "\n".join(textwrap.wrap(txt4.get('1.0', '1.end'), width=23)) 2hinmei2 = "\n".join(textwrap.wrap(txt4.get('2.0', '2.end'), width=23)) 3 4tree.insert("", "end",values=(code,hinmei+hinmei2,mai,KOURI,SINJDI,ORSKAK,ORSHON,SHZP,IRISU))
実現したいこと
下記のように改行を残したまま表示したい
例.
グラス
大きなコップ
コード
下記、最低限動くコードを表記出来ているかと思います。
宜しくお願い致します。
python
1#ライブラリインポート 2import tkinter as tk 3import tkinter.messagebox as tkm 4from tkinter.scrolledtext import ScrolledText 5import tkinter.ttk as ttk 6import cx_Oracle 7import os 8import csv 9import pandas as pd 10import textwrap 11 12#sql情報 13USERID = "" 14PASSWORD = "" 15DESTINATION = "" 16 17#登録ボタン 18def btn_click(): 19 20 haihin = str(txt1.get()) 21 syain = str(txt.get()) 22 code= str(txt2.get()) 23 mai = str(txt5.get()) 24 25 """SQL = "SELECT RHB,CL,SZ,JDI,SHZP,ORSTNK ,ORSTNY ,SHNMN FROM ShnMst where SHNC = '" + code + "'" 26 27 with cx_Oracle.connect(USERID, PASSWORD, DESTINATION) as connection: 28 with connection.cursor() as cursor: 29 for row in cursor.execute(SQL): 30 row_replace = [rows.replace(' ', '')for rows in row[7]] 31 rows = ''.join(row_replace) 32 RHB=row[0] 33 CL=row[1] 34 SZ=row[2] 35 JDI=row[3] 36 SHZP=int(row[4]) 37 ORSTNK=row[5] 38 ORSTNY=row[6] 39 #HINMEI=rows 40 ZIRITU=(SHZP*0.01+1) 41 KOURI="{:,d}".format(int(JDI*ZIRITU)) 42 ORSKAK="{:,d}".format(int(ORSTNK*ORSTNY*ZIRITU)) 43 ORSHON="{:,d}".format(ORSTNK*ORSTNY) 44 SINJDI="{:,d}".format(JDI) 45 if ORSTNY >1 : 46 IRISU="("+"@"+str(ORSTNK)+"×"+str(ORSTNY)+")" 47 else: 48 IRISU=""""" 49 50 hinmei = "\n".join(textwrap.wrap(txt4.get('1.0', '1.end'), width=23)) 51 hinmei2 = "\n".join(textwrap.wrap(txt4.get('2.0', '2.end'), width=23)) 52 53 tree.insert("", "end",values=(code,hinmei+hinmei2,mai)) 54 55 txt2.delete(0,tk.END) 56 txt4.delete('1.0','end -1c') 57 txt5.delete(0,tk.END) 58 txt5.insert(tk.END,1) 59 60#検索ボタン 61def btn_click2(): 62 63 haihin = str(txt1.get()) 64 syain = str(txt.get()) 65 code= str(txt2.get()) 66 mai = str(txt5.get()) 67 68 SQL = "SELECT RHB,CL,SZ,JDI,SHZP,ORSTNK ,ORSTNY ,SHNMN FROM ShnMst where SHNC = '" + code + "'" 69 70 71 with cx_Oracle.connect(USERID, PASSWORD, DESTINATION) as connection: 72 with connection.cursor() as cursor: 73 for row in cursor.execute(SQL): 74 row_replace = [rows.replace(' ', '')for rows in row[7]] 75 rows = ''.join(row_replace) 76 RHB=row[0] 77 CL=row[1] 78 SZ=row[2] 79 JDI=row[3] 80 SHZP=int(row[4]) 81 ORSTNK=row[5] 82 ORSTNY=row[6] 83 HINMEI=rows 84 ZIRITU=((SHZP*0.01+1)) 85 IRISU="("+"@"+str(ORSTNK)+"×"+str(ORSTNY)+")" 86 KOURI="{:,d}".format(int(JDI*ZIRITU)) 87 ORSKAK="{:,d}".format(int(ORSTNK*ORSTNY*ZIRITU)) 88 ORSHON="{:,d}".format(ORSTNK*ORSTNY) 89 SINJDI="{:,d}".format(JDI) 90 91 txt4.delete('1.0','end -1c') 92 txt4.insert(tk.END,HINMEI) 93 lbl6 = tk.Label(text='小売価格 '+ " ¥" + KOURI,relief="ridge",font=(u'MS ゴシック', 11, 'bold')) 94 lbl6.place(x=540, y=90) 95 96 lbl7 = tk.Label(text='本体価格 '+ " ¥" + SINJDI,relief="ridge",font=(u'MS ゴシック', 11, 'bold')) 97 lbl7.place(x=540, y=110) 98 99 lbl8 = tk.Label(text='卸価格 '+ " ¥" + ORSKAK,relief="ridge",font=(u'MS ゴシック', 11, 'bold')) 100 lbl8.place(x=774, y=90) 101 102 lbl9 = tk.Label(text='卸本体価格 '+ " ¥" + ORSHON,relief="ridge",font=(u'MS ゴシック', 11, 'bold')) 103 lbl9.place(x=740, y=110) 104 105 lbl10 = tk.Label(text='消費税率 '+ str(SHZP) +"%",relief="ridge",font=(u'MS ゴシック', 11, 'bold')) 106 lbl10.place(x=954, y=90) 107 108 if ORSTNY >1 : 109 lbl11 = tk.Label(text='入数表示 '+ IRISU,relief="ridge",font=(u'MS ゴシック', 11, 'bold')) 110 lbl11.place(x=954, y=110) 111 elif ORSTNY == 1: 112 pass 113 114#画面表示 115root = tk.Tk() 116root.geometry('1300x800+250+100') 117root.title('入力画面') 118root.minsize(width=1300, height=800) 119 120#社員番号 121lbl = tk.Label(text='社員番号',relief="ridge",font=(u'MS ゴシック', 11, 'bold')) 122lbl.place(x=160, y=18) 123txt = tk.Entry(width=8) 124txt.place(x=240, y=20) 125 126#配布先FLBX 127lbl1 = tk.Label(text='配布先FLBX',relief="ridge",font=(u'MS ゴシック', 11, 'bold')) 128lbl1.place(x=10, y=18) 129txt1 = tk.Entry(width=5) 130txt1.place(x=105, y=20) 131 132#商品コード 133lbl2 = tk.Label(text='商品コード',relief="ridge",font=(u'MS ゴシック', 11, 'bold')) 134lbl2.place(x=10, y=50) 135txt2 = tk.Entry(width=11) 136txt2.place(x=105, y=52) 137lbl2_1 = tk.Label(text='10桁入力(品番/CL/SZ)',font=(u'MS ゴシック', 9, 'bold')) 138lbl2_1.place(x=180, y=55) 139 140#登録内容 141lbl3 = tk.Label(text='登録内容',font=(u'MS ゴシック', 11, 'bold')) 142lbl3.place(x=15, y=92) 143 144#商品名 145lbl4 = tk.Label(text='商品名',relief="ridge",font=(u'MS ゴシック', 11, 'bold')) 146lbl4.place(x=105, y=92) 147txt4 = tk.Text(root, font=(u'MS ゴシック', 11, 'bold'),width=23,height=2)#字数制限、要確認!! 148txt4.place(x=165, y=94) 149#txt4.configure(state='disabled') 150 151#出力枚数 152lbl5 = tk.Label(text='出力枚数',relief="ridge",font=(u'MS ゴシック', 11, 'bold')) 153lbl5.place(x=380, y=90) 154txt5 = tk.Entry(width=5) 155txt5.place(x=380, y=110) 156txt5.insert(tk.END,1) 157 158#商品情報 159lbl6 = tk.Label(text='小売価格 ',relief="ridge",font=(u'MS ゴシック', 11, 'bold')) 160lbl6.place(x=540, y=90) 161 162lbl7 = tk.Label(text='本体価格 ',relief="ridge",font=(u'MS ゴシック', 11, 'bold')) 163lbl7.place(x=540, y=110) 164 165lbl8 = tk.Label(text='卸価格 ',relief="ridge",font=(u'MS ゴシック', 11, 'bold')) 166lbl8.place(x=774, y=90) 167 168lbl9 = tk.Label(text='卸本体価格 ',relief="ridge",font=(u'MS ゴシック', 11, 'bold')) 169lbl9.place(x=740, y=110) 170 171lbl10 = tk.Label(text='消費税率 ',relief="ridge",font=(u'MS ゴシック', 11, 'bold')) 172lbl10.place(x=954, y=90) 173 174lbl11 = tk.Label(text='入数表示 ',relief="ridge",font=(u'MS ゴシック', 11, 'bold')) 175lbl11.place(x=954, y=110) 176 177#登録ボタン 178btn = tk.Button(root, text='登録',width=8, font=("Menlo",11), bg="#d9d9d9",command=btn_click) 179btn.place(x=1170, y=145) 180 181#保存ボタン 182btn1 = tk.Button(root, text='保存',width=8, font=("Menlo",11), bg="#d9d9d9",command=btn_click1) 183btn1.place(x=1170, y=540) 184 185#検索ボタン 186btn2 = tk.Button(root, text='検索',width=8, font=("Menlo",11), bg="#d9d9d9",command=btn_click2) 187btn2.place(x=330, y=50) 188 189#商品コード 190lbl12 = tk.Label(text='商品コード',font=(u'MS ゴシック', 11, 'bold')) 191lbl12.place(x=10, y=160) 192 193 194#treeview 195frame = tk.Frame() 196frame.place(x=50,y=190) 197 198tree = ttk.Treeview(frame) 199tree.grid(row=0, column=0) 200tree["columns"] = (1,2,3,4,5,6,7,8,9) 201tree["show"] = "headings" 202 203tree.column(1,width=180) 204tree.column(2,width=200) 205tree.column(3,width=60) 206tree.column(4,width=140) 207tree.column(5,width=140) 208tree.column(6,width=140) 209tree.column(7,width=140) 210tree.column(8,width=60) 211tree.column(9,width=140) 212 213tree.heading(1,text="商品コード") 214tree.heading(2,text="商品名") 215tree.heading(3,text="出力枚数") 216tree.heading(4,text="小売価格") 217tree.heading(5,text="本体価格") 218tree.heading(6,text="卸価格") 219tree.heading(7,text="卸本体価格") 220tree.heading(8,text="消費税率") 221tree.heading(9,text="入数表示") 222 223style = ttk.Style() 224style.configure("Treeview", rowheight=30) 225 226ysb = tk.Scrollbar(frame, orient=tk.VERTICAL, width=16, command=tree.yview) 227tree.configure(yscrollcommand=ysb.set) 228ysb.grid(row=0, column=1, sticky='news') 229 230#表示保持 231root.mainloop()
回答1件
あなたの回答
tips
プレビュー