質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

1回答

524閲覧

TkinterでWindowsのNotepadのような物を作りたい(ですが、検索ボックスが出てくる原因が不明です)

Eston

総合スコア67

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

0グッド

0クリップ

投稿2019/11/05 23:51

いつも、お世話になっております。

リンクを参考に、Tkinterを使用して、Windowsで言うところのNotepad的なGUIを作りたいと考えております

イメージ説明

下記がコードなのですが、Macで実行すると、画像のように検索がVersionとAboutの上に出てきます
コードのどの部分が、Searchを表示しているのか、判断がつかないので、ご教授お願いします

開発環境
Mac: macOS Catalina バージョン10.15.1
Python: 3.7.5
Tkinter: 8.5(使用したコマンド $python3 -m tkinter)

Python3

1import tkinter 2import os 3from tkinter import * 4from tkinter.filedialog import * 5from tkinter.messagebox import * 6 7class KazuPad: 8 r = Tk() 9 10 file = None 11 12 height = 0 13 width = 0 14 txtArea = Text(r) 15 menuBar = Menu(r) 16 fileMenu = Menu(menuBar, tearoff=0) 17 helpMenu = Menu(menuBar, tearoff=0) 18 19 scroll = Scrollbar(txtArea) 20 21 def run(self): 22 self.r.mainloop() 23 24 #NEW functin 25 def newFile(self): 26 self.r.title('Untitled') 27 self.file = None 28 self.txtArea.delete(1.0,END) 29 #OPEN Function 30 def openFile(self): 31 self.file = askopenfilename(defaultextension='.txt') 32 if self.file == '': 33 self.file = None 34 else: 35 self.r.title(os.path.basename(self.file) + 'Sakuta') 36 self.txtArea.delete(1.0,END) 37 file = open(self.file,'r') 38 self.txtArea.insert(1.0,file.read()) 39 file.close() 40 41 #Save Function 42 def saveFile(self): 43 if self.file == None: 44 self.file = asksaveasfilename(initialfile='Untitled.txt') 45 if self.file == '': 46 self.file = None 47 else: 48 file = open(self.file,'w') 49 file.write(self.txtArea.get(1.0,END)) 50 file.close() 51 self.r.title(os.path.basename(self.file) + 'Sakuta') 52 else: 53 file = open(self.file,"w") 54 file.write(self.txtArea.get(1.0,END)) 55 file.close() 56 #Close Function 57 def closeFile(self): 58 self.r.destroy() 59 60 def showVersion(self): 61 showinfo('Version','KazuPad 2.0') 62 63 def showAbout(self): 64 showinfo('About', 'Author: Kazu N') 65 66 def showHowToUse(self): 67 showinfo('How To Use', 'Menu has 4 Functions\nNew: Create a new file in the display area.\nOpen: Choose a text file to display in the text area.\nSave: The contents of text area in a text file.\nClose: Exit the application.') 68 69 #Overall of Functions 70 def __init__(self, **kwangs): 71 72 try: 73 self.r.wm_ocpmbitmap('KazuPad Test') 74 except: 75 pass 76 77 try: 78 self.height = kwangs['height'] 79 except KeyError: 80 pass 81 82 try: 83 self.width = kwangs['width'] 84 except KeyError: 85 pass 86 87 self.r.title("Untitled") 88 89 self.txtArea.grid(sticky = N + E + S + W) 90 scHeight = self.r.winfo_screenheight() 91 scWidth = self.r.winfo_screenwidth() 92 top = (scHeight / 2) - (self.height /2) 93 left = (scWidth / 2) - (self.width / 2) 94 self.r.geometry('%dx%d+%d+%d' % (self.width, self.height, left, top)) 95 self.r.grid_rowconfigure(0, weight=1) 96 self.r.grid_columnconfigure(0, weight=1) 97 98 self.r.config(menu=self.menuBar) 99 self.menuBar.add_cascade(label='File', menu = self.fileMenu) 100 self.fileMenu.add_command(label = 'New', command = self.newFile) 101 self.fileMenu.add_command(label = 'Open', command = self.openFile) 102 self.fileMenu.add_command(label = 'Save', command = self.saveFile) 103 self.fileMenu.add_command(label = 'Close', command = self.closeFile) 104 105 self.txtArea.grid(sticky = N + E + S + W) 106 107 #helpMenu 108 self.menuBar.add_cascade(label='Help', menu=self.helpMenu) 109 self.helpMenu.add_command(label='Version', command=self.showVersion) 110 self.helpMenu.add_command(label='About', command=self.showAbout) 111 self.helpMenu.add_command(label='How To Use', command=self.showHowToUse) 112 113 self.scroll.pack(side=RIGHT,fill=Y) 114 self.scroll.config(command=self.txtArea.yview) 115 116#Sakuta Setting 117KazuPad = KazuPad(height=300, width=500) 118KazuPad.run() 119

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

WindowsのOSで、同じコードを実行したところ、動作に問題はなかったので、これはMacOS特有の現象だと思われます

投稿2019/11/08 00:43

Eston

総合スコア67

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問