Pysimplegui: [ Enhancement/Bug/Question] Masalah saya adalah...

Dibuat pada 21 Jun 2020  ·  4Komentar  ·  Sumber: PySimpleGUI/PySimpleGUI

Jenis Masalah (Peningkatan, Kesalahan, Bug, Pertanyaan)

Pertanyaan / Peningkatan

Sistem operasi

Win10, Raspian

versi python

3.7

Port dan Versi PySimpleGUI

Port tkinter, 4.20.0


4.20.0 Dirilis 6-Jun-2020

Tingkat Pengalaman Anda Dalam Bulan atau Tahun

1 tahun_________ pengalaman pemrograman Python
45 tahun_________ Pengalaman pemrograman secara keseluruhan
yes_________ Pernah menggunakan Framework GUI Python (tkinter, Qt, dll) sebelumnya (ya/tidak boleh)?

Anda telah menyelesaikan langkah-langkah ini:

  • [ x] Baca petunjuk tentang cara mengajukan Masalah
  • [ x] Mencari melalui dokumen utama http://www.PySimpleGUI.org untuk masalah Anda
  • [ x] Mencari melalui readme untuk port spesifik Anda jika bukan PySimpleGUI (Qt, WX, Remi)
  • [ x] Mencari Program Demo yang mirip dengan tujuan Anda http://www.PySimpleGUI.com
  • [ x] Perhatikan bahwa ada juga Program Demo di bawah setiap port di GitHub
  • [ x] Jalankan program Anda di luar debugger Anda (dari baris perintah)
  • [ x] Mencari melalui Masalah (terbuka dan tertutup) untuk melihat apakah sudah dilaporkan
  • [ ]x Coba lagi dengan memutakhirkan file PySimpleGUI.py Anda untuk menggunakan yang sekarang di GitHub. Masalah Anda mungkin sudah diperbaiki tetapi belum ada di PyPI.

Deskripsi Masalah / Pertanyaan / Detail

Aplikasi saya untuk GUI pada raspberry dengan elemen yang diperbarui secara real time (jendela async)
UPS2-GUI
. Ini berfungsi dengan baik, tetapi beberapa fitur tambahan di pysimplegui akan sangat bagus:
Pertanyaan1 : Harap berikan daftar dengan atribut elemen teks yang dapat diperbarui oleh window['xxkey'].update().

Pertanyaan2 : Apa tujuan dari _f_ in window[f'xxkey'] muncul di beberapa contoh Anda

Peningkatan porposal : penting untuk pembaruan dinamis saya adalah misalnya 'border_width' pada teks.

contoh kerja:
jendela['K_BATT_STATE'].update('RENDAH')
jendela[f'K_BATT_V'].update(background_color='green')

contoh tidak berfungsi:
jendela[f'K_BATT_V'].update(border_width=2)

Komentar yang paling membantu

Seperti yang saya tahu

  • Opsi atribut elemen teks ditampilkan di Update(value=None, background_color=None, text_color=None, font=None, visible=None).
  • Satu-satunya contoh demo yang menggunakan window[f'...] adalah Demo_Column_Elem_Swap_Entire_Window.py . f-string digunakan untuk penggantian substring dengan variabel.

Satu sampel untuk Anda.

import PySimpleGUI as sg

layout = [[sg.Text('Hello World !', font=('Courier New',20), key='TEXT1')],
          [sg.Text('dlroW olleH !', font=('Courier New',20), key='TEXT2')]]
window = sg.Window('Text', layout, finalize=True)
window['TEXT1'].Widget.configure(borderwidth=5, relief='solid')

while True:

    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break

window.close()

Semua 4 komentar

Dokumentasi dan string dokumen bawaan memberi tahu Anda apa yang tersedia untuk metode pembaruan setiap elemen. Lihatlah referensi panggilan terperinci.
http://calls.PySimpleGUI.org
Jika sesuatu tidak ada, maka Anda memiliki beberapa pilihan. Anda dapat langsung memanipulasi Widget yang mendasarinya, atau membuka permintaan peningkatan.,

Seperti yang saya tahu

  • Opsi atribut elemen teks ditampilkan di Update(value=None, background_color=None, text_color=None, font=None, visible=None).
  • Satu-satunya contoh demo yang menggunakan window[f'...] adalah Demo_Column_Elem_Swap_Entire_Window.py . f-string digunakan untuk penggantian substring dengan variabel.

Satu sampel untuk Anda.

import PySimpleGUI as sg

layout = [[sg.Text('Hello World !', font=('Courier New',20), key='TEXT1')],
          [sg.Text('dlroW olleH !', font=('Courier New',20), key='TEXT2')]]
window = sg.Window('Text', layout, finalize=True)
window['TEXT1'].Widget.configure(borderwidth=5, relief='solid')

while True:

    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break

window.close()

Terima kasih banyak Jason!

Ketika fitur "widget" yang mendasarinya tidak diekspos melalui API PySimpleGUI, maka Anda dapat menggunakan variabel anggota .Widget untuk langsung mengakses widget kerangka kerja GUI yang mendasarinya. Anda kehilangan portabilitas dari satu kerangka kerja ke kerangka lain, tetapi itu umumnya tidak menjadi masalah dalam kasus ini.

Senang Anda mendapat solusi yang Anda setujui.

Hai Jason, Hai Mike
Terima kasih banyak! Kedua jawaban tersebut sangat membantu mengakhiri penderitaan saya :-) dalam hitungan menit.
Pysimplegui adalah produk hebat dengan dukungan luar biasa!
Segera setelah proyek saya dapat digunakan, saya akan mempublikasikannya di akun git saya. Ini adalah catu daya efisiensi tinggi dan tidak terputus untuk semua model raspberry 3++ dan pi zero dan mencakup desain perangkat keras dan perangkat lunak yang lengkap.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat