第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

縮放 tkinter 項目以適應 320x240 樹莓派屏幕

縮放 tkinter 項目以適應 320x240 樹莓派屏幕

精慕HU 2022-12-27 10:00:40
我正在開發(fā)一個 tkinter GUI,它使用畫布小部件以便在背景中有一個圖像,以及上面的小部件。這個 GUI 將在320x240樹莓派屏幕上運行。我是為這些屏幕設計 GUI 的新手,只為過去的筆記本電腦。當前 GUI 如下所示:實際結(jié)果如您所見,它太小了。我想要的是:預期結(jié)果我制作幾何圖形的原因320x240是因為我想在我的 Raspberry Pi 屏幕上運行這個 GUI 320x240。然而,pi 將 HDMI 電纜的輸出鏡像到屏幕。HDMI 輸出1280x480。我只需要它在樹莓派屏幕上看起來太清晰,不管它在 HDMI 輸出上看起來有多長。我試過的我用過root.attributes('-fullscreen', True),認為這會縮放根框架的內(nèi)容以匹配屏幕分辨率,但是這條線只會使 tkinter 窗口全尺寸。我考慮過調(diào)整整個 GUI 的大小以在其上運行,1280x480但這意味著它們對于 pi 屏幕來說像素太多而無法顯示。redpoly2 圖片
查看完整描述

2 回答

?
jeck貓

TA貢獻1909條經(jīng)驗 獲得超7個贊

您可以在不使用小部件的情況下?lián)碛斜尘皥D像Canvas,這樣做將允許您使用 tkinter 的幾何管理器來放置小部件。我不太明白Raspberry Pi 的320x240 屏幕和1280x480 HDMI 之間的關系。


下面的代碼說明了如何顯示背景圖像和它上面的一些小部件。還有一個Button可以在您想要的兩個之間切換窗口的大小。


from PIL import Image, ImageTk

try:

    import Tkinter as tk

except:

    import tkinter as tk



path_to_bkgr_img = "redpoly2.jpg"

WIN_SIZES = (320, 240), (1280, 480)



# Translates an rgb tuple of int to a tkinter friendly color code.

def _from_rgb(rgb):

    return "#%02x%02x%02x" % rgb


def change_size():

    """ Sets/changes window size to next one available in WIN_SIZES. """

    global cur_size

    cur_size = (cur_size + 1) % len(WIN_SIZES)

    config_window()


def config_window():

    """ Sets root window's title, size, and background image. """

    global background_label


    geometry = '{}x{}'.format(*WIN_SIZES[cur_size])

    root.geometry(geometry)

    root.title(geometry)


    # Resize background to fit window size.

    btn_img = background_image.resize(WIN_SIZES[cur_size], resample=Image.BICUBIC)

    btn_img = ImageTk.PhotoImage(btn_img)  # Make tkinter compatible.


    if not background_label:  # Create Label if necessary.

        background_label = tk.Label(root)

    background_label.config(image=btn_img)

    background_label.image = btn_img  # Keep reference.

    background_label.place(x=0, y=0, relwidth=1, relheight=1)



root = tk.Tk()

background_image = Image.open(path_to_bkgr_img)

background_label = None

cur_size = 0

config_window()


titleLabel = tk.Label(root, fg="white", text="TEXT", borderwidth=2, relief="solid",

                      bg=_from_rgb((239, 36, 37)), font=("Courier", 44))

titleLabel.pack(padx=5, pady=5, expand=1)


logButton = tk.Button(root, fg="white", text="Change Size", command=change_size,

                      borderwidth=2, relief="raised", bg=_from_rgb((239, 36, 37)),

                      font=("Courier", 22))

logButton.pack(padx=5, pady=5, expand=1)


root.bind_all('<KeyPress-Escape>', lambda *event: quit())  # Press Esc key to quit app.

root.mainloop()

以下是顯示每種尺寸所顯示內(nèi)容的屏幕截圖:

http://img1.sycdn.imooc.com//63aa52170001be6903320271.jpg

http://img1.sycdn.imooc.com//63aa521f000152cb06560259.jpg

查看完整回答
反對 回復 2022-12-27
?
翻過高山走不出你

TA貢獻1875條經(jīng)驗 獲得超3個贊

RPi 的輸出可以在config.txt/boot 分區(qū)上的文件中配置。通過參考config.txt 視頻頁面,您可以將 HDMI 的輸出設置為特定模式。在您的情況下,這可能需要在 raspberry pi 論壇中描述的自定義設置。

config.txt您使用以下配置字符串指定新模式:

hdmi_cvt=<width> <height> <framerate> <aspect> <margins> <interlace> <rb>

在哪里:

Value       Default     Description

width       (required)  width in pixels

height      (required)  height in pixels

framerate   (required)  framerate in Hz

aspect      3           aspect ratio 1=4:3, 2=14:9, 3=16:9, 4=5:4, 5=16:10, 6=15:9

margins     0           0=margins disabled, 1=margins enabled

interlace   0           0=progressive, 1=interlaced

rb          0           0=normal, 1=reduced blanking


查看完整回答
反對 回復 2022-12-27
  • 2 回答
  • 0 關注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號