python編寫一個gui程序(python做GUI)

本文目錄一覽:

如何使用python寫gui編輯器

自帶編輯器python IDE(GUI):

python IDE(GUI)是交互環境下進行的,有相應的提示符「」。程序員寫一句,按下enter後,就會回應一句,出現「」.

若要按照正常的敲代碼換行,就按ctrl+n 自動創建一個編輯文件,編輯好後,再F5執行就可以了;或者在python IDE(GUI)的窗口中的File-New Window創建。

如何用 Python 寫一個帶 GUI 的科學計算程序

使用Tkinter圖形庫,如果你是用的linux系統 記得將第一行改為from tkinter import *

這個代碼實現的挺簡單,並不是很複雜的科學計算器界面,你可以以此為基礎,添加自己想要的東西:給你個截圖:

代碼是如下, 我就不給你添注釋了啊:

#!/usr/bin/env python3.4

from Tkinter import *

import parser

root = Tk()

root.title(‘Calculator’)

i = 0

def factorial():

“””Calculates the factorial of the number entered.”””

whole_string = display.get()

number = int(whole_string)

fact = 1

counter = number

try:

while counter 0:

fact = fact*counter

counter -= 1

clear_all()

display.insert(0, fact)

except Exception:

clear_all()

display.insert(0, “Error”)

def clear_all():

“””clears all the content in the Entry widget”””

display.delete(0, END)

def get_variables(num):

“””Gets the user input for operands and puts it inside the entry widget”””

global i

display.insert(i, num)

i += 1

def get_operation(operator):

“””Gets the operand the user wants to apply on the functions”””

global i

length = len(operator)

display.insert(i, operator)

i += length

def undo():

“””removes the last entered operator/variable from entry widget”””

whole_string = display.get()

if len(whole_string): ## repeats until

## now just decrement the string by one index

new_string = whole_string[:-1]

print(new_string)

clear_all()

display.insert(0, new_string)

else:

clear_all()

display.insert(0, “Error, press AC”)

def calculate():

“””

Evaluates the expression

ref :

“””

whole_string = display.get()

try:

formulae = parser.expr(whole_string).compile()

result = eval(formulae)

clear_all()

display.insert(0, result)

except Exception:

clear_all()

display.insert(0, “Error!”)

root.columnconfigure(0,pad=3)

root.columnconfigure(1,pad=3)

root.columnconfigure(2,pad=3)

root.columnconfigure(3,pad=3)

root.columnconfigure(4,pad=3)

root.rowconfigure(0,pad=3)

root.rowconfigure(1,pad=3)

root.rowconfigure(2,pad=3)

root.rowconfigure(3,pad=3)

display = Entry(root, font = (“Calibri”, 13))

display.grid(row = 1, columnspan = 6 , sticky = W+E)

one = Button(root, text = “1”, command = lambda : get_variables(1), font=(“Calibri”, 12))

one.grid(row = 2, column = 0)

two = Button(root, text = “2”, command = lambda : get_variables(2), font=(“Calibri”, 12))

two.grid(row = 2, column = 1)

three = Button(root, text = “3”, command = lambda : get_variables(3), font=(“Calibri”, 12))

three.grid(row = 2, column = 2)

four = Button(root, text = “4”, command = lambda : get_variables(4), font=(“Calibri”, 12))

four.grid(row = 3 , column = 0)

five = Button(root, text = “5”, command = lambda : get_variables(5), font=(“Calibri”, 12))

five.grid(row = 3, column = 1)

six = Button(root, text = “6”, command = lambda : get_variables(6), font=(“Calibri”, 12))

six.grid(row = 3, column = 2)

seven = Button(root, text = “7”, command = lambda : get_variables(7), font=(“Calibri”, 12))

seven.grid(row = 4, column = 0)

eight = Button(root, text = “8”, command = lambda : get_variables(8), font=(“Calibri”, 12))

eight.grid(row = 4, column = 1)

nine = Button(root , text = “9”, command = lambda : get_variables(9), font=(“Calibri”, 12))

nine.grid(row = 4, column = 2)

cls = Button(root, text = “AC”, command = clear_all, font=(“Calibri”, 12), foreground = “red”)

cls.grid(row = 5, column = 0)

zero = Button(root, text = “0”, command = lambda : get_variables(0), font=(“Calibri”, 12))

zero.grid(row = 5, column = 1)

result = Button(root, text = “=”, command = calculate, font=(“Calibri”, 12), foreground = “red”)

result.grid(row = 5, column = 2)

plus = Button(root, text = “+”, command = lambda : get_operation(“+”), font=(“Calibri”, 12))

plus.grid(row = 2, column = 3)

minus = Button(root, text = “-“, command = lambda : get_operation(“-“), font=(“Calibri”, 12))

minus.grid(row = 3, column = 3)

multiply = Button(root,text = “*”, command = lambda : get_operation(“*”), font=(“Calibri”, 12))

multiply.grid(row = 4, column = 3)

divide = Button(root, text = “/”, command = lambda : get_operation(“/”), font=(“Calibri”, 12))

divide.grid(row = 5, column = 3)

# adding new operations

pi = Button(root, text = “pi”, command = lambda: get_operation(“*3.14”), font =(“Calibri”, 12))

pi.grid(row = 2, column = 4)

modulo = Button(root, text = “%”, command = lambda : get_operation(“%”), font=(“Calibri”, 12))

modulo.grid(row = 3, column = 4)

left_bracket = Button(root, text = “(“, command = lambda: get_operation(“(“), font =(“Calibri”, 12))

left_bracket.grid(row = 4, column = 4)

exp = Button(root, text = “exp”, command = lambda: get_operation(“**”), font = (“Calibri”, 10))

exp.grid(row = 5, column = 4)

## To be added :

# sin, cos, log, ln

undo_button = Button(root, text = “-“, command = undo, font =(“Calibri”, 12), foreground = “red”)

undo_button.grid(row = 2, column = 5)

fact = Button(root, text = “x!”, command = factorial, font=(“Calibri”, 12))

fact.grid(row = 3, column = 5)

right_bracket = Button(root, text = “)”, command = lambda: get_operation(“)”), font =(“Calibri”, 12))

right_bracket.grid(row = 4, column = 5)

square = Button(root, text = “^2”, command = lambda: get_operation(“**2”), font = (“Calibri”, 10))

square.grid(row = 5, column = 5)

root.mainloop()

八款常用的 Python GUI 開發框架推薦

作為Python開發者,你遲早都會用到圖形用戶界面來開發應用。本文將推薦一些 Python GUI 框架,希望對大家有所幫助。

Python 的 UI 開發工具包 Kivy

Kivy是一個開源工具包能夠讓使用相同源代碼創建的程序能跨平台運行。它主要關注創新型用戶界面開發,如:多點觸摸應用程序。Kivy還提供一個多點觸摸滑鼠模擬器。當前支持的平台包括:Linux、Windows、Mac OS X和Android。

Kivy擁有能夠處理動畫、緩存、手勢、繪圖等功能。它還內置許多用戶界面控制項如:按紐、攝影機、表格、Slider和樹形控制項等。

Python 的 GUI 開發工具 Flexx

Flexx 是一個純 Python 工具包,用來創建圖形化界面應用程序。其使用 Web 技術進行界面的渲染。你可以用 Flexx 來創建桌面應用,同時也可以導出一個應用到獨立的 HTML 文檔。因為使用純 Python 開發,所以 Flexx 是跨平台的。只需要有 Python 和瀏覽器就可以運行。如果是使用桌面模式運行,推薦使用 Firefox 。

Qt 庫的 Python 綁定 PyQt

PyQt是Qt庫的Python版本。PyQt3支持Qt1到Qt3。 PyQt4支持Qt4。它的首次發布也是在1998年,但是當時它叫 PyKDE,因為開始的時候SIP和PyQt沒有分開。PyQt是用SIP寫的。PyQt 提供 GPL版和商業版。

Python圖形開發包 wxPython

wxPython 是 Python 語言的一套優秀的 GUI 圖形庫,允許 Python 程序員很方便的創建完整的、功能鍵全的 GUI 用戶界面。 wxPython 是作為優秀的跨平台 GUI 庫 wxWidgets 的 Python 封裝和 Python 模塊的方式提供給用戶的。

就如同Python和wxWidgets一樣,wxPython也是一款開源軟體,並且具有非常優秀的跨平台能力,能夠運行在32位windows、絕大多數的Unix或類Unix系統、Macintosh OS X上。

Tk 圖形用戶界面 Tkinter

Tkinter(也叫Tk介面)是Tk圖形用戶界面工具包標準的Python介面。Tk是一個輕量級的跨平台圖形用戶界面(GUI)開發工具。Tk和Tkinter可以運行在大多數的Unix平台、Windows、和Macintosh系統。

Tkinter 由一定數量的模塊組成。Tkinter位於一個名為_tkinter(較早的版本名為tkinter)的二進位模塊中 。Tkinter包含了對Tk的低 級介面模塊,低級介面並不會被應用級程序員直接使用,通常是一個共享庫(或DLL),但是在一些情況下它也被Python解釋器靜態鏈接。

Pywin32

Windows Pywin32允許你像VC一樣的形式來使用PYTHON開發win32應用。代碼風格可以類似win32 sdk,也可以類似MFC,由你選擇。如果你仍不放棄vc一樣的代碼過程在python下,那麼這就是一個不錯的選擇。

Python 圖形界面開發包 PyGTK

PyGTK讓你用Python輕鬆創建具有圖形用戶界面的程序.底層的GTK+提供了各式的可視元素和功能,如果需要,你能開發在GNOME桌面系統運行的功能完整的軟體.

PyGTK真正具有跨平台性,它能不加修改地,穩定運行各種操作系統之上,如Linux,Windows,MacOS等.除了簡單易用和快速的原型開發能力外,PyGTK還有一流的處理本地化語言的獨特功能.

用python快速開發絢麗桌面程序 pyui4win

pyui4win是一個開源的採用自繪技術的界面庫。支持C++和python。用它可以很容易實現QQ和360安全衛士這樣的絢麗界面。而且,pyui4win有所見即所得界面設計器,讓C++開發人員和python開發人員直接用設計工具設計界面,而不用關心界面如何生成和運行,可以顯著縮短界面開發時間。在pyui4win中,界面甚至可以完全交給美工去處理,開發人員可以只負責處理業務邏輯,把開發人員徹底從繁雜的界面處理中解放出來。

以上就是為大家分享的八款常用的python GUI開發框架推薦,希望能對你有幫助。更多python學習資料,可以關注「武漢千鋒」微信公眾號。

Python編寫GUI

你在構造函數中少創建了posCtrl對象,所以當事件發生時會提示沒有posCtrl對象,源代碼應該是這個吧:

1 #!/bin/env python

2 import wx

3 class MyFrame(wx.Frame):

4

5 def __init__(self):

6 wx.Frame.__init__(self, None, -1, “My Frame”, size=(300, 300))

7 panel = wx.Panel(self, -1)

8 panel.Bind(wx.EVT_MOTION, self.OnMove)

9 wx.StaticText(panel, -1, “Pos:”, pos=(10, 12))

10 self.posCtrl = wx.TextCtrl(panel, -1, “”, pos=(40, 10))

11

12 def OnMove(self, event):

13 pos = event.GetPosition()

14 self.posCtrl.SetValue(“%s, %s” % (pos.x, pos.y))

15

16 if __name__ == ‘__main__’:

17 app = wx.PySimpleApp()

18 frame = MyFrame()

19 frame.Show(True)

20 app.MainLoop()

參考:

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/285020.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-22 15:43
下一篇 2024-12-22 15:43

相關推薦

  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29

發表回復

登錄後才能評論