Rumah pembangunan bahagian belakang Tutorial Python 基于wxpython开发的简单gui计算器实例

基于wxpython开发的简单gui计算器实例

Jun 10, 2016 pm 03:11 PM
gui wxpython kalkulator

本文实例讲述了基于wxpython开发的简单gui计算器。分享给大家供大家参考。具体如下:

# wxCalc1 a simple GUI calculator using wxPython
# created with the Boa Constructor which generates all the GUI components
# all I had to do is add some code for each button click event
# Boa free from: http://boa-constructor.sourceforge.net/
# note that  boa-constructor-0.3.1.win32.exe
# still uses  wxPythonWIN32-2.4.2.4-Py23.exe
# but is expected to work with wxPython version 2.5 soon
# tested with Python23  vegaseat  26feb2005
from wxPython.wx import *
# some Boa generated global IDs ...
[wxID_WXFRAME1, wxID_WXFRAME1BTN0, wxID_WXFRAME1BTN1, wxID_WXFRAME1BTN2,
 wxID_WXFRAME1BTN3, wxID_WXFRAME1BTN4, wxID_WXFRAME1BTN5, wxID_WXFRAME1BTN6,
 wxID_WXFRAME1BTN7, wxID_WXFRAME1BTN8, wxID_WXFRAME1BTN9,
 wxID_WXFRAME1BTNCLEAR, wxID_WXFRAME1BTNDIV, wxID_WXFRAME1BTNDOT,
 wxID_WXFRAME1BTNEQUAL, wxID_WXFRAME1BTNMINUS, wxID_WXFRAME1BTNMULTI,
 wxID_WXFRAME1BTNPLUS, wxID_WXFRAME1EDIT,
] = map(lambda _init_ctrls: wxNewId(), range(19))
class wxFrame1(wxFrame):
#startregion, below this marker is Boa generated code do not edit!!!
  def _init_ctrls(self, prnt):
    # generated method, don't edit
    wxFrame.__init__(self, id=wxID_WXFRAME1, name='', parent=prnt,
       pos=wxPoint(306, 270), size=wxSize(266, 265),
       style=wxDEFAULT_FRAME_STYLE, title='Calculator1')
    self.SetClientSize(wxSize(258, 225))
    self.SetBackgroundColour(wxColour(0, 128, 0))
    self.btn1 = wxButton(id=wxID_WXFRAME1BTN1, label='1', name='btn1',
       parent=self, pos=wxPoint(16, 136), size=wxSize(32, 32), style=0)
    EVT_BUTTON(self.btn1, wxID_WXFRAME1BTN1, self.OnBtn1Button)
    self.btn2 = wxButton(id=wxID_WXFRAME1BTN2, label='2', name='btn2',
       parent=self, pos=wxPoint(64, 136), size=wxSize(32, 32), style=0)
    EVT_BUTTON(self.btn2, wxID_WXFRAME1BTN2, self.OnBtn2Button)
    self.btn3 = wxButton(id=wxID_WXFRAME1BTN3, label='3', name='btn3',
       parent=self, pos=wxPoint(112, 136), size=wxSize(32, 32), style=0)
    EVT_BUTTON(self.btn3, wxID_WXFRAME1BTN3, self.OnBtn3Button)
    self.btn4 = wxButton(id=wxID_WXFRAME1BTN4, label='4', name='btn4',
       parent=self, pos=wxPoint(16, 96), size=wxSize(32, 32), style=0)
    EVT_BUTTON(self.btn4, wxID_WXFRAME1BTN4, self.OnBtn4Button)
    self.btn5 = wxButton(id=wxID_WXFRAME1BTN5, label='5', name='btn5',
       parent=self, pos=wxPoint(64, 96), size=wxSize(32, 32), style=0)
    EVT_BUTTON(self.btn5, wxID_WXFRAME1BTN5, self.OnBtn5Button)
    self.btn6 = wxButton(id=wxID_WXFRAME1BTN6, label='6', name='btn6',
       parent=self, pos=wxPoint(112, 96), size=wxSize(32, 32), style=0)
    EVT_BUTTON(self.btn6, wxID_WXFRAME1BTN6, self.OnBtn6Button)
    self.btn7 = wxButton(id=wxID_WXFRAME1BTN7, label='7', name='btn7',
       parent=self, pos=wxPoint(16, 56), size=wxSize(32, 32), style=0)
    EVT_BUTTON(self.btn7, wxID_WXFRAME1BTN7, self.OnBtn7Button)
    self.btn8 = wxButton(id=wxID_WXFRAME1BTN8, label='8', name='btn8',
       parent=self, pos=wxPoint(64, 56), size=wxSize(32, 32), style=0)
    EVT_BUTTON(self.btn8, wxID_WXFRAME1BTN8, self.OnBtn8Button)
    self.btn9 = wxButton(id=wxID_WXFRAME1BTN9, label='9', name='btn9',
       parent=self, pos=wxPoint(112, 56), size=wxSize(32, 32), style=0)
    EVT_BUTTON(self.btn9, wxID_WXFRAME1BTN9, self.OnBtn9Button)
    self.btn0 = wxButton(id=wxID_WXFRAME1BTN0, label='0', name='btn0',
       parent=self, pos=wxPoint(16, 176), size=wxSize(32, 32), style=0)
    EVT_BUTTON(self.btn0, wxID_WXFRAME1BTN0, self.OnBtn0Button)
    self.btnDot = wxButton(id=wxID_WXFRAME1BTNDOT, label='.', name='btnDot',
       parent=self, pos=wxPoint(64, 176), size=wxSize(32, 32), style=0)
    EVT_BUTTON(self.btnDot, wxID_WXFRAME1BTNDOT, self.OnBtnDotButton)
    self.btnEqual = wxButton(id=wxID_WXFRAME1BTNEQUAL, label='=',
       name='btnEqual', parent=self, pos=wxPoint(112, 176),
       size=wxSize(32, 32), style=0)
    EVT_BUTTON(self.btnEqual, wxID_WXFRAME1BTNEQUAL, self.OnBtnEqualButton)
    self.edit = wxTextCtrl(id=wxID_WXFRAME1EDIT, name='edit', parent=self,
       pos=wxPoint(16, 16), size=wxSize(224, 24), style=0, value='')
    self.btnPlus = wxButton(id=wxID_WXFRAME1BTNPLUS, label='+',
       name='btnPlus', parent=self, pos=wxPoint(160, 56), size=wxSize(32,
       32), style=0)
    EVT_BUTTON(self.btnPlus, wxID_WXFRAME1BTNPLUS, self.OnBtnPlusButton)
    self.btnMinus = wxButton(id=wxID_WXFRAME1BTNMINUS, label='-',
       name='btnMinus', parent=self, pos=wxPoint(160, 96),
       size=wxSize(32, 32), style=0)
    EVT_BUTTON(self.btnMinus, wxID_WXFRAME1BTNMINUS, self.OnBtnMinusButton)
    self.btnMulti = wxButton(id=wxID_WXFRAME1BTNMULTI, label='*',
       name='btnMulti', parent=self, pos=wxPoint(160, 136),
       size=wxSize(32, 32), style=0)
    EVT_BUTTON(self.btnMulti, wxID_WXFRAME1BTNMULTI, self.OnBtnMultiButton)
    self.btnDiv = wxButton(id=wxID_WXFRAME1BTNDIV, label='/', name='btnDiv',
       parent=self, pos=wxPoint(160, 176), size=wxSize(32, 32), style=0)
    EVT_BUTTON(self.btnDiv, wxID_WXFRAME1BTNDIV, self.OnBtnDivButton)
    self.btnClear = wxButton(id=wxID_WXFRAME1BTNCLEAR, label='C',
       name='btnClear', parent=self, pos=wxPoint(208, 56),
       size=wxSize(32, 32), style=0)
    self.btnClear.SetToolTipString('btnClear')
    EVT_BUTTON(self.btnClear, wxID_WXFRAME1BTNCLEAR, self.OnBtnClearButton)
  def __init__(self, parent):
    self._init_ctrls(parent)
#endregion, above this marker is Boa generated code, do not edit!!!
# now respond to all the button click events ...
  def OnBtn0Button(self, event):
    val = '0'
    # get existing edit box text
    txt = self.edit.GetValue()
    # append text
    txt = txt + val
    # update edit box text
    self.edit.SetValue(txt)
  def OnBtn1Button(self, event):
    val = '1'
    txt = self.edit.GetValue()
    txt = txt + val
    self.edit.SetValue(txt)
  def OnBtn2Button(self, event):
    val = '2'
    txt = self.edit.GetValue()
    txt = txt + val
    self.edit.SetValue(txt)
  def OnBtn3Button(self, event):
    val = '3'
    txt = self.edit.GetValue()
    txt = txt + val
    self.edit.SetValue(txt)
  def OnBtn4Button(self, event):
    val = '4'
    txt = self.edit.GetValue()
    txt = txt + val
    self.edit.SetValue(txt)
    
  def OnBtn5Button(self, event):
    val = '5'
    txt = self.edit.GetValue()
    txt = txt + val
    self.edit.SetValue(txt)
  def OnBtn6Button(self, event):
    val = '6'
    txt = self.edit.GetValue()
    txt = txt + val
    self.edit.SetValue(txt)
  def OnBtn7Button(self, event):
    val = '7'
    txt = self.edit.GetValue()
    txt = txt + val
    self.edit.SetValue(txt)
  def OnBtn8Button(self, event):
    val = '8'
    txt = self.edit.GetValue()
    txt = txt + val
    self.edit.SetValue(txt)
  def OnBtn9Button(self, event):
    val = '9'
    txt = self.edit.GetValue()
    txt = txt + val
    self.edit.SetValue(txt)
  def OnBtnDotButton(self, event):
    val = '.'
    txt = self.edit.GetValue()
    txt = txt + val
    self.edit.SetValue(txt)
  def OnBtnEqualButton(self, event):
    txt = self.edit.GetValue()
    # needs to contain a float so eg. 3/5 is 3/5.0
    # otherwise division 3/5 would result in zero
    if '/' in txt:
      if '.' not in txt:
        txt = txt + '.0'
    # now evaluate the math string
    txt = repr(eval(txt))
    # and show result in edit box
    self.edit.SetValue(txt)
  def OnBtnPlusButton(self, event):
    val = '+'
    txt = self.edit.GetValue()
    txt = txt + val
    self.edit.SetValue(txt)
  def OnBtnMinusButton(self, event):
    val = '-'
    txt = self.edit.GetValue()
    txt = txt + val
    self.edit.SetValue(txt)
  def OnBtnMultiButton(self, event):
    val = '*'
    txt = self.edit.GetValue()
    txt = txt + val
    self.edit.SetValue(txt)
  def OnBtnDivButton(self, event):
    val = '/'
    txt = self.edit.GetValue()
    txt = txt + val
    self.edit.SetValue(txt)
  def OnBtnClearButton(self, event):
    self.edit.SetValue('')
# -------------------- end of class wxFrame1 ----------------------
def create(parent):
  return wxFrame1(parent)
class BoaApp(wxApp):
  def OnInit(self):
    wxInitAllImageHandlers()
    self.main = create(None)
    self.main.Show()
    self.SetTopWindow(self.main)
    return True
def main():
  application = BoaApp(0)
  application.MainLoop()
if __name__ == '__main__':
  main()

Salin selepas log masuk

希望本文所述对大家的Python程序设计有所帮助。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menggunakan ttkbootstrap untuk mencipta antara muka yang cantik untuk GUI Python? Bagaimana untuk menggunakan ttkbootstrap untuk mencipta antara muka yang cantik untuk GUI Python? May 07, 2023 pm 03:40 PM

Kedua-dua gambar ini adalah tangkapan skrin paparan paparan yang disediakan di tapak web rasmi: penukaran tema ialah penukaran tema yang mudah Memandangkan terdapat beberapa komponen pada tetingkap semasa, kesannya tidak jelas, tetapi ia akan kelihatan baik apabila terdapat banyak reka letak komponen. . importttkbootstrapasttkfromttkbootstrap.constantsimport*root=ttk.Window()style=ttk.Style()theme_names=style.theme_names()#Kembalikan berbilang nama tema dalam bentuk senarai theme_selection=ttk.Frame(root, padding=(10,10)

Petua Python masih boleh melaksanakan antara muka grafik tanpa menggunakan Gui Petua Python masih boleh melaksanakan antara muka grafik tanpa menggunakan Gui Apr 12, 2023 pm 04:43 PM

Sekiranya terdapat apa-apa yang ditakuti oleh pengaturcara, maka saya fikir mungkin keperluan telah berubah lagi Tidak, selepas pengarang membangunkan aplikasi Web berasaskan pelayar, pelanggan berkata: Program ini perlu dalaman (tidak) dalaman (rangkaian) ) persekitaran... Ini bermakna persekitaran Python tidak boleh dipasang Siapakah yang memanggil kami sebagai pengaturcara? Saya tidak dapat bertenang... ...Untuk tidak menjejaskan penilaian pelanggan, kami hanya boleh memberikan satu minggu Walaupun tidak sukar untuk membayangkan GUI, ia perlu menyusun perkhidmatan dan antara muka interaktif dengannya pengguna. Jika tidak, anda perlu menulis antara muka yang berasingan untuk GUI, yang jelas tidak cukup masa. Tidak, mari kita fikirkan cara lain...jika tidak, kita boleh menggunakan Web sahaja

Apakah kunci ac pada kalkulator? Apakah kunci ac pada kalkulator? Feb 24, 2023 am 10:19 AM

Ac pada kalkulator ialah kekunci "all clear" Nama penuh bahasa Inggeris ac ialah "All Clear", yang bermaksud "all clear key" bermaksud mengosongkan nilai dalam semua register; , tekan pertama Menekan kekunci ac akan mengosongkan semua nilai kecuali kandungan memori.

Apakah e dalam kalkulator Apakah e dalam kalkulator Oct 19, 2022 am 11:23 AM

E dalam kalkulator mewakili kuasa 10, yang bermaksud eksponen dengan asas 10. Contohnya, 1.99714E13 bersamaan dengan 19971400000000 menyatakan nombor dalam bentuk darab dengan kuasa ke-10 dipanggil tatatanda saintifik : Apabila kita ingin menandakan atau mengendalikan sesuatu yang lebih besar atau lebih kecil dengan bilangan digit yang banyak, kita boleh menggunakan tatatanda saintifik untuk mengelakkan pembaziran banyak ruang dan masa.

Rangka kerja GUI terminal teks Python, sangat keren Rangka kerja GUI terminal teks Python, sangat keren Apr 12, 2023 pm 12:52 PM

Kutukan Yang pertama muncul ialah Kutukan[1]. CurseCurses ialah perpustakaan dinamik yang menyediakan kefungsian tetingkap terminal berasaskan teks Ia boleh: Mencipta dan mengurus tetingkap menggunakan keseluruhan skrin Gunakan 8 warna berbeza Menyediakan sokongan tetikus untuk program Gunakan kekunci fungsi pada papan kekunci Curse boleh digunakan dalam mana-mana ANSI/POSIX. -patuh Berjalan pada sistem Unix/Linux standard. Ia juga boleh dijalankan pada Windows, tetapi anda perlu memasang perpustakaan windows-curses sebagai tambahan: pip install windows-curses Gambar di atas ditulis oleh rakan menggunakan Curses

Ajar anda cara membuka kalkulator win10 Ajar anda cara membuka kalkulator win10 Jul 12, 2023 pm 11:21 PM

Sistem win10 mempunyai banyak fungsi yang berkuasa, yang menarik ramai netizen untuk memuat turun, memasang dan menggunakannya Terdapat juga banyak alat praktikal, seperti alat kalkulator win10. Sesetengah netizen masih tidak tahu cara membuka kalkulator Win10. Biar saya ajar anda cara membuka kalkulator Win10. Kaedah 1: Cari dalam menu Mula 1. Pada desktop sistem Windows 10, klik item menu "Mula/Kalkulator". 2. Anda boleh membuka tetingkap kalkulator Windows 10. Kaedah 2: Buka Carian Cortana 1. Pada desktop Windows 10, klik ikon "Carian Cortana" di penjuru kiri sebelah bawah bar tugas. 2. Masukkan kata kunci "kalkulator" dalam menu pop timbul untuk mencari, dan klik item menu kalkulator dalam hasil carian.

Bagaimana untuk melaksanakan penukaran Bingkai dalam pengaturcaraan GUI Python Tkinter Bagaimana untuk melaksanakan penukaran Bingkai dalam pengaturcaraan GUI Python Tkinter May 11, 2023 pm 04:25 PM

1. Pengenalan kepada kaedah tkraise() Frame Biasanya, aplikasi Tkinter terdiri daripada berbilang Bingkai. Dan anda sering perlu bertukar antara Bingkai untuk memaparkan Bingkai yang berkaitan dengan pilihan pengguna. Tkinter membenarkan Bingkai disusun di atas satu sama lain. Untuk memaparkan Bingkai tertentu, hanya letakkan satu di atas satu lagi dalam susunan susunan. Bingkai atas akan kelihatan. Untuk meletakkan Frame di atas, anda boleh menggunakan kaedah tkraise() widget Frame, seperti yang ditunjukkan di bawah: frame.tkraise() 2. contoh penggunaan tkraise Berikut akan melaksanakan aplikasi penukaran suhu kecil, menggunakan dua untuk Fahrenheit dan Celsius Bingkai yang berbeza

Cara menggunakan alat susun atur GUI Python Tkinter Cara menggunakan alat susun atur GUI Python Tkinter May 09, 2023 pm 02:16 PM

Antara Muka Pengguna Grafik (GUI) Antara Muka Pengguna Grafik (GUI) hanyalah aplikasi desktop yang membantu kami berinteraksi dengan komputer Aplikasi GUI seperti editor teks boleh membuat, membaca, mengemas kini dan memadamkan beberapa jenis fail. Aplikasi seperti Solitaire, Chess dan Solitaire ialah versi permainan program GUI, dan aplikasi GUI seperti Google Chrome, Firefox dan Microsoft Edge digunakan untuk menyemak imbas Internet Ini adalah beberapa jenis GUI yang kami gunakan pada komputer kami setiap hari. Aplikasi, sebenarnya, kami juga boleh membina aplikasi yang serupa melalui Tkinter Hari ini, sebagai pengenalan kepada GUI, kami akan membuat yang sangat mudah

See all articles