Jadual Kandungan
Pengindahan halaman
Gunakan ttkbootstrap untuk mencantikkan page
Rumah pembangunan bahagian belakang Tutorial Python Siapa kata menulis program GUI dalam Python adalah hodoh? Itu kerana anda tidak tahu bagaimana untuk mencantikkannya!

Siapa kata menulis program GUI dalam Python adalah hodoh? Itu kerana anda tidak tahu bagaimana untuk mencantikkannya!

Apr 11, 2023 pm 01:52 PM
python gui

Siapa kata menulis program GUI dalam Python adalah hodoh? Itu kerana anda tidak tahu bagaimana untuk mencantikkannya!

Dalam kerja dan kajian harian kami, kami sering menulis beberapa alatan GUI Python yang mudah untuk menyelesaikan pelbagai tugas automatik, seperti pemprosesan kumpulan fail, pemprosesan kumpulan gambar, dll. tunggu. Apabila kita menulis alat ini, kita selalunya hanya menumpukan pada pelaksanaan fungsi dan mengabaikan pengindahan halaman Ini juga menjadikan program GUI yang dibina dalam Python agak rendah pada mata orang Hari ini kita akan mengabaikan fungsi terlebih dahulu pengindahan, mari kita lihat betapa cantiknya program GUI yang ditulis dalam Python tulen!

Susun atur halaman

Kami terlebih dahulu melengkapkan susun atur GUI asas

Andaikan kami ingin membuat alat penukaran heksadesimal, kemudian susun atur umum adalah seperti berikut:

Siapa kata menulis program GUI dalam Python adalah hodoh? Itu kerana anda tidak tahu bagaimana untuk mencantikkannya!

Gambar di atas ditulis sepenuhnya melalui tkinter, perpustakaan GUI yang disertakan dengan Python.

Sebahagian daripada kod adalah seperti berikut:

from tkinter import ttk
from tkinter import *
class Transform():
 def __init__(self):
 self.root = Tk()
 self.root.title("进制转换工具")
 self.root.geometry("600x280")
 self.root.resizable(False, False)
 self.var = StringVar()
 self.values = ['2', '8', '10', '16', '32', '36', '58', '62']
 self.myWidget()
 self.myLayout()
 def myWidget(self):
 self.container = Frame(self.root)
 # 转换设置区域
 self.lf_group1 = LabelFrame(master=self.container, text="转换设置")
 self.cb = Checkbutton(self.lf_group1, text="是否自动转换")
 self.cb.invoke()
 self.bt = Button(self.lf_group1, text='转换')
 self.en = Entry(self.lf_group1, text='warning')
 # 进制选择区域
 self.lf_group2 = LabelFrame(master=self.container, text="进制选择")
 self.lb1 = Label(self.lf_group2, text="请选择待转换的进制")
 self.cbo1 = ttk.Combobox(
 master=self.lf_group2,
 values=self.values
 )
 self.cbo1.set(self.values[2])
 self.lb2 = Label(self.lf_group2, text="请选择转换后的进制")
 self.cbo2 = ttk.Combobox(
 master=self.lf_group2,
 values=self.values,
 )
 self.cbo2.set(self.values[0])
 # 进制输出区域
 self.txt = Text(master=self.container, height=5, width=50)
 def myLayout(self):
 self.container.pack(side=LEFT, fill=BOTH, expand=YES, padx=5)
 self.lf_group1.pack(fill=X, side=TOP)
 self.lf_group2.pack(fill=X, pady=10, side=TOP)
 self.cb.pack(side=LEFT, expand=YES, padx=5, fill=X)
 self.bt.pack(side=LEFT, expand=YES, padx=5, fill=X)
 self.en.pack(side=LEFT, expand=YES, padx=5, fill=X)
 self.lb1.pack(side=LEFT, expand=YES, padx=5)
 self.cbo1.pack(side=LEFT, expand=YES, pady=5)
 self.lb2.pack(side=LEFT, expand=YES, padx=5)
 self.cbo2.pack(side=LEFT, expand=YES, pady=5)
 self.txt.pack(side=LEFT, anchor=NW, pady=5, fill=BOTH, expand=YES)
 def run(self):
 self.container.mainloop()
if __name__ == '__main__':
 trans = Transform()
 trans.run()
Salin selepas log masuk

Kod ini tidak rumit, dan reka letak juga merupakan kaedah pek paling asas yang digunakan Walaupun keseluruhan program GUI kelihatan kemas, warnanya monoton Setiap komponen tidak begitu cantik, jadi mari kita cantikkan seterusnya.

Pengindahan halaman

Kami mula-mula mencantikkan halaman dengan menetapkan CSS secara manual Di sini kami menggunakan atribut konfigurasi perpustakaan tkonter.

Mula-mula kami tetapkan warna latar belakang:

self.container.config(bg='#073642')
Salin selepas log masuk

Untuk keseluruhan bekas bekas, kami tetapkan warna latar belakang kepada #073642

Seterusnya Kemudian tetapkan gaya setiap komponen secara berasingan:

self.lf_group1.config(bg='#073642', fg="white")
self.lf_group2.config(bg='#073642', fg="white")
self.cb.config(bg='#073642', selectcolor='#073642', activebackground='#073642',
activeforeground='#073642', fg="white")
self.bt.config(bg="azure3")
self.en.config(highlightbackground="#0b5162", highlightcolor="#0b5162",
insertofftime=500, insertontime=500, fg="Gainsboro", insertbackground="Gainsboro",
bg="#073642", highlightthickness=2, relief="solid")
self.lb1.config(bg='#073642', activebackground='#073642',
 activeforeground='#073642', fg="white")
self.lb2.config(bg='#073642', activebackground='#073642',
 activeforeground='#073642', fg="white")
self.txt.config(insertofftime=500, insertontime=500, fg="Gainsboro", insertbackground="Gainsboro",
 wrap="none", bg='#073642')
Salin selepas log masuk

semuanya ditetapkan melalui konfigurasi Untuk pemilihan warna, anda boleh memilih melalui pemilih warna dalam talian.

  • https://tools.kalvinbg.cn/dev/colorPicker Seterusnya kami menetapkan gaya kotak lungsur turun Terdapat beberapa perkara istimewa tentang komponen kotak lungsur.

Komponen ini ialah komponen ttk, jadi penetapan gaya perlu dilakukan melalui tema Kodnya adalah seperti berikut:

combostyle = ttk.Style()
combostyle.theme_create('combostyle', parent='alt',
 settings={'TCombobox':
 {'configure':
 {
 'foreground': 'white',
 'selectbackground': '#073642',# 选择后的背景颜色
 'fieldbackground': '#073642',# 下拉框颜色
 'background': '#073642',# 下拉按钮背景颜色
 "font": 10,# 字体大小
 }}}
 )
combostyle.theme_use('combostyle')
Salin selepas log masuk

Dengan cara ini, gaya keseluruhan program GUI kami ditetapkan , mari kita lihat kesan akhir:

Siapa kata menulis program GUI dalam Python adalah hodoh? Itu kerana anda tidak tahu bagaimana untuk mencantikkannya!

Dapat dilihat dengan jelas bahawa penampilan telah dipertingkatkan oleh. beberapa peringkat!

Gunakan ttkbootstrap untuk mencantikkan page

Semestinya kami ada kaedah mencantikkan yang lebih mudah dan berkesan iaitu menggunakan library ttkbootstrap untuk mencantikkan page.

Mula-mula pasang perpustakaan ttkbootstrap melalui pip:

pip install ttkbootstrap
Salin selepas log masuk

Kemudian rujuk perpustakaan dalam projek:

import ttkbootstrap as ttk
from ttkbootstrap.constants import *
class MainCreator(ttk.Window):
 def __init__(self):
 super().__init__("进制转换工具", themename="solar", resizable=(False, False))# 设置一个主题
Salin selepas log masuk

Pada ketika ini apabila kita selesai Apabila meletakkan komponen, gaya keseluruhan halaman menjadi gaya tema solar Sudah tentu, kita masih boleh menambah atribut gaya but pada komponen yang berbeza untuk mencapai lebih banyak kesan gaya.

def create_frame(self):
 """Create all the frame widgets"""
 container = ttk.Frame(self)
 container.pack(side=LEFT, fill=BOTH, expand=YES, padx=5)
 color_group = ttk.Labelframe(
 master=container, text="转换设置", padding=10
 )
 color_group.pack(fill=X, side=TOP)
 self.cb = ttk.Checkbutton(color_group, text="是否自动转换", variable=self.cbvar)
 self.cb.invoke()
 self.bt = ttk.Button(color_group, text='转换', bootstyle='success')
 self.en = ttk.Entry(color_group, text='warning', bootstyle='warning')
 self.cb.pack(side=LEFT, expand=YES, padx=5, fill=X)
 self.bt.pack(side=LEFT, expand=YES, padx=5, fill=X)
 self.en.pack(side=LEFT, expand=YES, padx=5, fill=X)
 cr_group = ttk.Labelframe(
 master=container, text="进制选择", padding=10
 )
 cr_group.pack(fill=X, pady=10, side=TOP)
 values = ['2', '8', '10', '16', '32', '36', '58', '62']
 cr3 = ttk.Label(cr_group, text="请选择待转换的进制")
 cr3.pack(side=LEFT, expand=YES, padx=5)
 self.cbo1 = ttk.Combobox(
 master=cr_group,
 values=values,
 )
 self.cbo1.pack(side=LEFT, expand=YES, pady=5)
 self.cbo1.set(values[2])
 cr5 = ttk.Label(cr_group, text="请选择转换后的进制")
 cr5.pack(side=LEFT, expand=YES, padx=5)
 self.cbo2 = ttk.Combobox(
 master=cr_group,
 values=values,
 )
 self.cbo2.pack(side=LEFT, expand=YES, pady=5)
 self.cbo2.set(values[0])
 self.txt = ttk.Text(master=container, height=5, width=50, wrap="none")
 self.txt.pack(side=LEFT, anchor=NW, pady=5, fill=BOTH, expand=YES)
Salin selepas log masuk

Kesan akhir adalah seperti berikut:

Siapa kata menulis program GUI dalam Python adalah hodoh? Itu kerana anda tidak tahu bagaimana untuk mencantikkannya!

Dapat dilihat bahawa kesan keseluruhan penggunaan perpustakaan ini masih lebih baik daripada menambah gaya CSS secara manual. Lebih cantik dan lebih mudah!

Baiklah, itu sahaja yang saya kongsikan hari ini, jumpa lagi di lain kali~

Atas ialah kandungan terperinci Siapa kata menulis program GUI dalam Python adalah hodoh? Itu kerana anda tidak tahu bagaimana untuk mencantikkannya!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
4 minggu 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 cara menyalin seluruh lajur satu data ke dalam data data lain dengan struktur yang berbeza di Python? Bagaimana cara menyalin seluruh lajur satu data ke dalam data data lain dengan struktur yang berbeza di Python? Apr 01, 2025 pm 11:15 PM

Apabila menggunakan Perpustakaan Pandas Python, bagaimana untuk menyalin seluruh lajur antara dua data data dengan struktur yang berbeza adalah masalah biasa. Katakan kita mempunyai dua DAT ...

Bolehkah anotasi parameter Python menggunakan rentetan? Bolehkah anotasi parameter Python menggunakan rentetan? Apr 01, 2025 pm 08:39 PM

Penggunaan alternatif anotasi parameter python Dalam pengaturcaraan Python, anotasi parameter adalah fungsi yang sangat berguna yang dapat membantu pemaju memahami dan menggunakan fungsi ...

Bagaimanakah skrip Python jelas output ke kedudukan kursor di lokasi tertentu? Bagaimanakah skrip Python jelas output ke kedudukan kursor di lokasi tertentu? Apr 01, 2025 pm 11:30 PM

Bagaimanakah skrip Python jelas output ke kedudukan kursor di lokasi tertentu? Semasa menulis skrip python, adalah perkara biasa untuk membersihkan output sebelumnya ke kedudukan kursor ...

Mengapa kod saya tidak dapat mendapatkan data yang dikembalikan oleh API? Bagaimana menyelesaikan masalah ini? Mengapa kod saya tidak dapat mendapatkan data yang dikembalikan oleh API? Bagaimana menyelesaikan masalah ini? Apr 01, 2025 pm 08:09 PM

Mengapa kod saya tidak dapat mendapatkan data yang dikembalikan oleh API? Dalam pengaturcaraan, kita sering menghadapi masalah mengembalikan nilai null apabila panggilan API, yang bukan sahaja mengelirukan ...

Bagaimanakah uvicorn terus mendengar permintaan http tanpa serving_forever ()? Bagaimanakah uvicorn terus mendengar permintaan http tanpa serving_forever ()? Apr 01, 2025 pm 10:51 PM

Bagaimanakah Uvicorn terus mendengar permintaan HTTP? Uvicorn adalah pelayan web ringan berdasarkan ASGI. Salah satu fungsi terasnya ialah mendengar permintaan HTTP dan teruskan ...

Bagaimana secara dinamik membuat objek melalui rentetan dan panggil kaedahnya dalam Python? Bagaimana secara dinamik membuat objek melalui rentetan dan panggil kaedahnya dalam Python? Apr 01, 2025 pm 11:18 PM

Di Python, bagaimana untuk membuat objek secara dinamik melalui rentetan dan panggil kaedahnya? Ini adalah keperluan pengaturcaraan yang biasa, terutamanya jika perlu dikonfigurasikan atau dijalankan ...

Bagaimana untuk menggunakan Go atau Rust untuk memanggil skrip Python untuk mencapai pelaksanaan selari yang benar? Bagaimana untuk menggunakan Go atau Rust untuk memanggil skrip Python untuk mencapai pelaksanaan selari yang benar? Apr 01, 2025 pm 11:39 PM

Bagaimana untuk menggunakan Go atau Rust untuk memanggil skrip Python untuk mencapai pelaksanaan selari yang benar? Baru -baru ini saya telah menggunakan python ...

Di mana untuk memuat turun fail python .whl di bawah tingkap? Di mana untuk memuat turun fail python .whl di bawah tingkap? Apr 01, 2025 pm 08:18 PM

Kaedah muat turun Perpustakaan Python (.whl) Meneroka kesukaran banyak pemaju Python apabila memasang perpustakaan tertentu pada sistem Windows. Penyelesaian yang sama ...

See all articles