小编j_4*_*321的帖子

在Tkinter中绘制圆圈(Python)

在a上绘制圆圈tkinter Canvas通常通过该create_oval方法完成.但是,提供边界框通常是考虑绘制圆形的一种令人困惑的方式.为它提供一个快捷方式并不是特别困难,但我找不到其他人做类似的事情,所以我会发布它希望别人觉得它有用.

python geometry tkinter

19
推荐指数
2
解决办法
6万
查看次数

无法导入名称'ImageTK' - python 3.5

我试图从与我的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)

python tkinter python-imaging-library pillow

12
推荐指数
6
解决办法
2万
查看次数

简单的ttk ComboBox演示

这应该很简单,但我真的很难做到正确.我只需要一个简单的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)

python tkinter ttk

10
推荐指数
1
解决办法
6万
查看次数

如何使用TriggerDagRunOperator触发Airflow -dag

我找到以下链接:

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)

python sql triggers directed-acyclic-graphs apache-airflow

10
推荐指数
1
解决办法
5536
查看次数

Tkinter全屏应用程序

我正在创建一个应用程序.我需要它才能成为真正的全屏应用程序.通过这个,我的意思是顶部没有标题栏或周围的任何东西.

这是我的代码的基本版本:

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)

python tkinter fullscreen

8
推荐指数
1
解决办法
6439
查看次数

在 tkinter 中显示表情符号

我正在 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)

python ubuntu tkinter

7
推荐指数
0
解决办法
1300
查看次数

缩放 Tkinter 小部件

我正在使用 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,这没有问题,但是当有很多小部件时,这就变得可取了。)

任何帮助将不胜感激!

python grid tkinter

5
推荐指数
1
解决办法
1万
查看次数

如何在Tkinter小部件中获取cmd

我正在创建Tkinter GUI并希望将Windows CMD添加到tkinter小部件中.我想用console来连接数据库.我做了一些研究,发现只有pyconsole模块,但有一些错误:

  • cls不会按照你的期望做;
  • 编辑不会显示编辑器(尝试开始编辑);
  • 提示任何失败;
  • color命令没有实现;
  • 也不支持伟大的^ C(它实际上复制文本,而不是中断进程).

特别是^ 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.

照片: 在此输入图像描述 在此输入图像描述

谢谢

洪扎

python cmd tkinter

5
推荐指数
1
解决办法
1106
查看次数

root.overrideredirect和<Any-KeyPress>绑定

我希望以下程序退出<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)这里建议的那样,现在似乎有效.

python events binding tkinter

5
推荐指数
1
解决办法
872
查看次数

Python:使用多个核心的流程文件

我目前正在尝试读取一个大文件(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)

python multiprocessing

5
推荐指数
1
解决办法
168
查看次数