python - PySimpleGUI Python3 中的图像
问题描述
所以我正在使用 PySimpleGUI 为一个项目制作一个邮件服务应用程序,我真的在为图像放置而苦苦挣扎......这是我的代码:
import PySimpleGUI as sg
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
sg.theme('Dark')
layout = [[sg.Frame('', [[
sg.Image('xmail.png', size=(1100, 300))]])],
[sg.Frame('Options', [[
sg.Checkbox('Confidential'), sg.Checkbox('Extra Confidential'),
sg.Checkbox('Not Confidential')]])],
[sg.Text('Sender Email'+':', size=(14, None)), sg.InputText(key='sender_email1')],
[sg.Text('Sender Password'+':', size=(14, None)), sg.InputText(password_char='*', key='sender_password1')],
[sg.Frame('Encryption key - (optional)', [[
sg.Slider(range=(1, 100), orientation='v', size=(5, 20), default_value=25, key='slider_encrypt1'),
sg.Slider(range=(1, 100), orientation='v', size=(5, 20), default_value=75, key='slider_encrypt2'),
sg.Slider(range=(1, 100), orientation='v', size=(5, 20), default_value=55, key='slider_encrypt3')]])],
[sg.Text('Receiver Email'+':', size=(14, None)), sg.InputText(key='receiver_email1')],
[sg.Text('Subject', size=(14, None)), sg.InputText(key='subject1')],
[sg.Multiline('Email...', key='email_message1', size=(70, 12))],
[sg.Button('Send Mail', button_color=('white', 'green')),
sg.Button('Cancel', button_color=('white', 'red'))]]
window = sg.Window('Window Title', layout, size=(1100, 950))
event, values = window.read()
这只是我在它下面有很多代码用于邮件服务的实际功能的布局。这就是它的样子 - 在此处输入图像描述
您可以看到第一张图像非常适合。我想要的是在右侧添加一个垂直的并且非常适合的图像,但是发生的事情是......
正如您所看到的,它完全把它弄乱了,并且把文本框打乱了,有没有人知道如何解决这个问题?我尝试将包含文本的图像的代码添加到不同的位置,但它永远不会起作用,它总是做同样的事情,把它搞砸了:/
感谢所有阅读本文的人!:)
解决方案
您可以使用sg.Frame
或sg.Column
来分隔左框架和右框架。您的Checkbox
, Text
, Slider
, Multiline
, ... 的左框架布局,以及另一个垂直图像的右框架的另一个布局。像这样的东西
top_frame = [[sg.Image(...)]]
left_frame = [[sg.Frame(...)], [sg.Text(...}], ...]
right_frame = [[sg.Image(...)]]
layout = [
[sg.frame("", top_frame)],
[sg.frame("", left_frame), sg.frame("", right_frame)]
]
推荐阅读
- c++ - 如何在不编组的情况下将 System::String 转换为 std::string?
- window-functions - 第一行匹配条件,第一行匹配其他条件之后
- postgresql - 在一次查询中更改 PostgreSQL 中的多个列名称和数据类型
- mysql - 从我的数据库中获取营业额、收入、总费用并按年分组
- mongodb - 无法使用 MongoDB Atlas 实例在 Google App Engine Standard 上启动 Spring Boot
- centos - rpm 签名验证在 CentOS 上失败,在 Fedora 上工作
- java - SOAP Web 服务自动化测试
- node.js - 如何使用 nodejs 插入和更新数据库中的现有数据?
- javascript - 导入react-dom而不使用它会导致升级后出错
- postgresql - 使用当前项目索引更新行