在a上绘制圆圈tkinter Canvas通常通过该create_oval方法完成.但是,提供边界框通常是考虑绘制圆形的一种令人困惑的方式.为它提供一个快捷方式并不是特别困难,但我找不到其他人做类似的事情,所以我会发布它希望别人觉得它有用.
我试图从与我的python脚本所在的文件夹相同的文件夹中加载图像.
# create a class called Person
# create init method
# 2 attributes (name, and birthdate)
# create an object from the Person class
from PIL import Image, ImageTK
import datetime
import tkinter as tk
# create frame
window = tk.Tk()
# create frame geometry
window.geometry("400x400")
# set title of frame
window.title("Age Calculator App")
# adding labels
name_label = tk.Label(text="Name")
name_label.grid(column=0, row=0)
year_label = tk.Label(text="Year")
year_label.grid(column = 0, row = 1)
month_label = tk.Label(text="Month")
month_label.grid(column = 0, row = …Run Code Online (Sandbox Code Playgroud) 这应该很简单,但我真的很难做到正确.我只需要一个简单的ttk ComboBox,它可以根据选择的变化更新变量.
在下面的示例中,我需要value_of_combo每次进行新选择时自动更新变量的值.
from Tkinter import *
import ttk
class App:
value_of_combo = 'X'
def __init__(self, parent):
self.parent = parent
self.combo()
def combo(self):
self.box_value = StringVar()
self.box = ttk.Combobox(self.parent, textvariable=self.box_value)
self.box['values'] = ('X', 'Y', 'Z')
self.box.current(0)
self.box.grid(column=0, row=0)
if __name__ == '__main__':
root = Tk()
app = App(root)
root.mainloop()
Run Code Online (Sandbox Code Playgroud) 我找到以下链接:
https://www.linkedin.com/pulse/airflow-lesson-1-triggerdagrunoperator-siddharth-anand
这确实解释了如何使用TriggerDagRunOperator来执行单独的Airflow dag.该文档使用Airflow自己的示例dags,但我很难理解那些因为他们没有使用任何传感器.
有人可以解释如何使用TriggerDagRunOperator和开始单独的dag SqlSensor?当我的SQL Server作业任务完成时,我正在尝试启动单独的DAG.我知道如何通过使用来检查SQL Server作业的状态SqlSensor,但我不知道如何将结果附加TriggerDagRunOperator到启动单独的DAG.
我不想使用Airflow CLI或在一个DAG中执行这两项任务.基本上,我希望这只是触发dag.
下面是我目前的代码,它缺少关键 conditionally_trigger
# File Name: check-when-db1-sql-task-is-done
from airflow import DAG
from airflow.operators import TriggerDagRunOperator
from airflow.operators import SqlSensor
from datetime import datetime
default_args = {
'owner': 'airflow',
'retry_delay': timedelta(minutes=5),
}
dag = DAG('check-when-db1-sql-task-is-done',
description='Check-when-DB1-SQL-task-is-done',
default_args=default_args,
schedule_interval='@once',
start_date=datetime.now(),
)
# returns-0-or-1-based-on-job-task-status
sqlsensor = SqlSensor (
task_id='sql-sensor',
poke_interval=30,
timeout=3200,
sql="""select last_run_outcome from msdb.dbo.sysjobsteps where job_id = '249A5A5D-6AFC-4D6B-8CB1-27C16724A450' and step_id = '1' and last_run_date …Run Code Online (Sandbox Code Playgroud) 我正在创建一个应用程序.我需要它才能成为真正的全屏应用程序.通过这个,我的意思是顶部没有标题栏或周围的任何东西.
这是我的代码的基本版本:
from tkinter import *
window = Tk()
canvas = Canvas(window, width=1400, height=820, bg="SteelBlue2")
canvas.pack()
xposition = 0
yposition = 0
temperature = "46"
message = "The temperature right now is " + temperature
indepth = "Its a clear night"
def moveleft(event):
global yposition, xposition
if yposition == 0 and xposition > -2:
x = 0
for i in range(40):
canvas.move('test', x, 0)
canvas.after(10)
canvas.update()
x -= 1
xposition -= 1
def moveright(event):
global yposition, xposition
if yposition == …Run Code Online (Sandbox Code Playgroud) 我正在 Ubuntu 中使用 python 3.x,我试图在 tkinter 中显示一些表情符号。在Windows中,我通过显示等效代理对Python:从非BMP unicode char查找等效代理对解决了这个问题,但是在Ubuntu中,当我尝试使用一些表情符号执行此操作时,程序崩溃并给出此错误,
代码:
import tkinter as tk
root = tk.Tk()
canvas = tk.Canvas(root)
canvas.pack()
x, y= 0, 0
for _ in range(100):
canvas.create_text(x, y, text='\ud83d\ude4f', anchor=tk.NW)
y += 10
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
错误:
X Error of failed request: BadLength (poly request too large or internal Xlib length error)
Major opcode of failed request: 139 (RENDER)
Minor opcode of failed request: 20 (RenderAddGlyphs)
Serial number of failed request: 199
Current serial number in output …Run Code Online (Sandbox Code Playgroud) 我正在使用 Tkinter 的“grid()”方法为我的 python 程序设计 GUI。
有没有办法让小部件随主窗口缩放?
这是一个简短的例子:
from Tkinter import *
master = Tk()
Label(master, text="This is a test").grid(row=0, column=0)
mytext1 = Text(master, width=30, height=5)
mytext1.grid(row=1, column=0)
mytext2 = Text(master, width=30, height=5)
mytext2.grid(row=3, column=0)
master.mainloop()
Run Code Online (Sandbox Code Playgroud)
我想做的是当主窗口的大小发生变化时,让小部件调整它们的大小。(对于如此小的 GUI,这没有问题,但是当有很多小部件时,这就变得可取了。)
任何帮助将不胜感激!
我正在创建Tkinter GUI并希望将Windows CMD添加到tkinter小部件中.我想用console来连接数据库.我做了一些研究,发现只有pyconsole模块,但有一些错误:
特别是^ C命令ommited是我想运行的sql脚本的巨大限制.
我可以像这样打开控制台:
Popen(["cmd.exe"], creationflags=CREATE_NEW_CONSOLE)
Run Code Online (Sandbox Code Playgroud)
但是使用这种方法我不知道如何与GUI交互(甚至可能吗?)
我的Text小部件也可以从命令行读取输出,但我还需要在该命令行中写入,而不仅仅是读取它...
是否有可能将常规CMD放入Tkinter小部件中,这将与GUI中的其他小部件做出反应?
所需的行为将是右侧的CMD控制台,如下图所示(在tkinter窗口中),它将与左侧的列表框进行交互.我不是在寻找确切的代码(这就是为什么我的代码没有在这里说明),而是方法/解决方案如何将CMD放入tkinter.
照片:

谢谢
洪扎
我希望以下程序退出<Any-KeyPress>活动.
from tkinter import *
root = Tk()
root.overrideredirect(True)
root.bind('<Any-KeyPress>', lambda e: root.destroy())
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
这适用于Windows操作系统.但是,除非我root.overrideredirect(True)从上面的代码中删除该行,否则这在Ubuntu上不起作用.
这是预期的行为吗?
或者有没有办法让我的程序在仍然使用的同时工作root.overrideredirect(True)?
编辑
我刚刚在SO看到了类似的问题,Bryan Oakley建议使用root.focus_force()它,但它没有帮助.
编辑2
我使用的root.attributes('-fullscreen', True)不是root.overrideredirect(True)像这里建议的那样,现在似乎有效.
我目前正在尝试读取一个大文件(8000万行),我需要为每个条目进行计算密集型矩阵乘法.计算完之后,我想将结果插入数据库.由于此过程采用时间密集的方式,我希望将文件拆分为多个核心以加快进程.
在研究之后,我发现了这个有希望的尝试,它将文件分成n个部分.
def file_block(fp, number_of_blocks, block):
'''
A generator that splits a file into blocks and iterates
over the lines of one of the blocks.
'''
assert 0 <= block and block < number_of_blocks
assert 0 < number_of_blocks
fp.seek(0,2)
file_size = fp.tell()
ini = file_size * block / number_of_blocks
end = file_size * (1 + block) / number_of_blocks
if ini <= 0:
fp.seek(0)
else:
fp.seek(ini-1)
fp.readline()
while fp.tell() < end:
yield fp.readline()
Run Code Online (Sandbox Code Playgroud)
迭代地,您可以像这样调用函数:
if __name__ == '__main__':
fp …Run Code Online (Sandbox Code Playgroud)