{"id":9466,"date":"2022-09-19T02:12:54","date_gmt":"2022-09-18T20:42:54","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/"},"modified":"2022-09-19T02:12:54","modified_gmt":"2022-09-18T20:42:54","slug":"solved-tkinter-show-dialog-with-options-and-change-password-buttons","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/","title":{"rendered":"[Solved] Tkinter &#8211; show dialog with options and change password buttons"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-43842252\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"43842252\" data-parentid=\"43782307\" data-score=\"0\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>So I had a little bit of a play around and I think this is what your after. I also changed your code a little bit as I always feel its best to put <code>self<\/code> infront of all widgets on multiclass applications.<\/p>\n<pre><code>import tkinter as tk\n\nclass FirstFrame(tk.Frame):\n    def __init__(self, master, **kwargs):\n        tk.Frame.__init__(self, master, **kwargs)\n        self.pack()\n\n        master.title(\"Enter password\")\n        master.geometry(\"300x200\")\n        self.status = tk.Label(self, fg='red')\n        self.status.pack()\n        self.lbl = tk.Label(self, text=\"Enter password\")\n        self.lbl.pack()\n        self.pwd = tk.Entry(self, show=\"*\")\n        self.pwd.pack()\n        self.pwd.focus()\n        self.pwd.bind('&lt;Return&gt;', self.check)\n        self.btn = tk.Button(self, text=\"Done\", command=self.check)\n        self.btn.pack()\n        self.btn = tk.Button(self, text=\"Cancel\", command=self.quit)\n        self.btn.pack()\n\n    def check(self, event=None):\n      if self.pwd.get() == app.password:\n        self.destroy() #destroy current window and open next\n        self.app= SecondFrame(self.master)\n      else:\n        self.status.config(text=\"Wrong password\")\n\nclass SecondFrame(tk.Frame):\n#re organised a lot in here\n    def __init__(self, master, **kwargs):\n        tk.Frame.__init__(self, master, **kwargs)\n        self.pack()\n        master.title(\"Main application\")\n        master.geometry(\"600x400\")\n        self.c = tk.Button(self, text=\"Options\", command=self.options_button)\n        self.c.pack()\n        self.e = tk.Entry(self.master, show=\"*\")\n    def options_button(self):\n        self.e.pack()\n        self.but1 = tk.Button(self, text=\"Change password\", command=self.set_password)\n        self.but1.pack()\n    def set_password(self):\n        app.password=self.e.get()\n\nif __name__==\"__main__\":\n    root = tk.Tk() #removed your mainframe class\n    app=FirstFrame(root)\n    #set an attribute of the application for the password\n    #similar to a global variable\n    app.password = \"password\"\n    root.mainloop()\n<\/code><\/pre>\n<p>So with what I have done you get prompted for the password and if you get it right it goes to the next scree, then an options button appears and if it is clicked then an entry box appears allowing the user to change the password<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">7<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Tkinter &#8211; show dialog with options and change password buttons <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] So I had a little bit of a play around and I think this is what your after. I also changed your code a little bit as I always feel its best to put self infront of all widgets on multiclass applications. import tkinter as tk class FirstFrame(tk.Frame): def __init__(self, master, **kwargs): tk.Frame.__init__(self, master, &#8230; <a title=\"[Solved] Tkinter &#8211; show dialog with options and change password buttons\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/\" aria-label=\"More on [Solved] Tkinter &#8211; show dialog with options and change password buttons\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[349,2678,768],"class_list":["post-9466","post","type-post","status-publish","format-standard","hentry","category-solved","tag-python","tag-tk","tag-tkinter"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Tkinter - show dialog with options and change password buttons - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Tkinter - show dialog with options and change password buttons - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] So I had a little bit of a play around and I think this is what your after. I also changed your code a little bit as I always feel its best to put self infront of all widgets on multiclass applications. import tkinter as tk class FirstFrame(tk.Frame): def __init__(self, master, **kwargs): tk.Frame.__init__(self, master, ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-18T20:42:54+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Tkinter &#8211; show dialog with options and change password buttons\",\"datePublished\":\"2022-09-18T20:42:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/\"},\"wordCount\":111,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"python\",\"tk\",\"tkinter\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/\",\"name\":\"[Solved] Tkinter - show dialog with options and change password buttons - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-09-18T20:42:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Tkinter &#8211; show dialog with options and change password buttons\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Tkinter - show dialog with options and change password buttons - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Tkinter - show dialog with options and change password buttons - JassWeb","og_description":"[ad_1] So I had a little bit of a play around and I think this is what your after. I also changed your code a little bit as I always feel its best to put self infront of all widgets on multiclass applications. import tkinter as tk class FirstFrame(tk.Frame): def __init__(self, master, **kwargs): tk.Frame.__init__(self, master, ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/","og_site_name":"JassWeb","article_published_time":"2022-09-18T20:42:54+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Tkinter &#8211; show dialog with options and change password buttons","datePublished":"2022-09-18T20:42:54+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/"},"wordCount":111,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["python","tk","tkinter"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/","url":"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/","name":"[Solved] Tkinter - show dialog with options and change password buttons - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-09-18T20:42:54+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-tkinter-show-dialog-with-options-and-change-password-buttons\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Tkinter &#8211; show dialog with options and change password buttons"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/9466","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=9466"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/9466\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=9466"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=9466"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=9466"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}