标签: tkinter

Python Tkinter 为文本框设置非活动边框?

即使在非活动状态下,是否可以使文本框具有边框?

python text tkinter border

0
推荐指数
1
解决办法
6593
查看次数

Tkinter 获取 CheckButton 的选定值

我已经尝试了stackoverflow 中的几个示例,但不幸的是对我不起作用。

我只想获取 Tkinter、Python 选定的 checkButton 的值。

我有一个 CheckButton 列表,如下所示

## csv file has rows like
# 101, apple
# 102, orange
for row in csvReader:
        checkButton = Checkbutton(top, text = row[1], variable = StringVar(), 
                 onvalue = row[0], offvalue = "0", height=2, \
                 width = 0, justify=Tkinter.LEFT)
        checkButton.pack()
        checkBoxList.append(checkButton)
Run Code Online (Sandbox Code Playgroud)

单击表单中的按钮时,这里是需要获取复选框的选中值的回调。

def btnStartCallBack():
    for chkBox in checkBoxList:
        print chkBox.variable().get()
        # also tried below
        # print chkBox.get()
        # print chkBox.var()
        # print chkBox.onvalue.get()
Run Code Online (Sandbox Code Playgroud)

它返回:

AttributeError: Checkbutton instance has no attribute …
Run Code Online (Sandbox Code Playgroud)

python tkinter python-2.7

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

使用 Tkinter 中的按钮终止线程

在我的 GUI 代码中,我尝试通过单击一个按钮来同时运行循环 1 和循环 2。因此,我曾经Thread实现过这一点。但我也尝试通过单击另一个按钮来阻止它,但失败了。在stackoverflow上搜索后,我发现没有直接杀死 的方法Thread。这是代码的一部分:

def loop1():
    while True:
        call (["raspivid -n -op 150 -w 640 -h 480 -b 2666666.67 -t 5000 -o test.mp4"],shell=True)
        call (["raspivid -n -op 150 -w 640 -h 480 -b 2666666.67 -t 5000 -o test1.mp4"],shell=True)

def loop2():
    while True:
        call (["arecord -D plughw:1 --duration=5 -f cd -vv rectest.wav"],shell=True)
        call (["arecord -D plughw:1 --duration=5 -f cd -vv rectest1.wav"],shell=True)

def combine():
    Thread(target = loop1).start()
    Thread(target = loop2).start()

def stop():
    Thread(target = loop1).terminate() …
Run Code Online (Sandbox Code Playgroud)

python multithreading tkinter multiprocessing raspberry-pi

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

Tkinter .pack() 窗口未显示?

我一直在开发一个简单的程序,可以让按钮输出一些东西。但是当我运行它时,这个在此输入图像描述

(顺便说一句,我从互联网上得到这个)没有出现。是代码有问题还是什么?请帮助我,以便出现上面的窗口:)

代码:

from Tkinter import *
def asdf():
    print('test')
tk = Tk()
b = Button(tk, text="test", command=asdf)
b.pack()
Run Code Online (Sandbox Code Playgroud)

python tk-toolkit canvas window tkinter

0
推荐指数
1
解决办法
3964
查看次数

使用 tkinter 仅向一个方向填充?

是否可以仅从顶部而不是底部填充小部件?pady 命令总是会双向添加像素...:\

这是一个例子:

from tkinter import ttk, Tk

root = Tk()
frame = ttk.Frame(root)
label1 = ttk.Label(frame, text="Label 1")
label2 = ttk.Label(frame, text="Label 2")
entry = ttk.Entry(frame)

frame.grid(column=0,row=0)
label1.grid(column=0,row=0)
label2.grid(column=0,row=1,pady=15)  ## I would like to pad this only from the top
entry.grid(column=0,row=2)
Run Code Online (Sandbox Code Playgroud)

提前致谢!!

tkinter padding python-3.x

0
推荐指数
1
解决办法
7726
查看次数

从函数设置串行对象(从 tkinter 交互调用)

我设法让我的 tkinter 应用程序在文本字段上显示文本。

我通过硬编码 COM 端口和波特率来做到这一点,然后在我的程序开始时设置一个串行对象。

baudRate = 9600
ser = serial.Serial('COM16', baudRate)
Run Code Online (Sandbox Code Playgroud)

然后我所有的代码都在之后运行。

但问题是一切都是硬编码的。我希望用户能够从下拉列表中选择 COM 端口。当他选择一个端口时,串行通信应该开始。

所以我就是这样构建的。这是我的相关代码。

#hardcoded baud rate
baudRate = 9600

# this is the global variable that will hold the serial object value
ser = 0 #initial  value. will change at 'on_select()'

#this function populates the dropdown on frame1, with all the serial ports of the system
def serial_ports():    
    return serial.tools.list_ports.comports()

#when the user selects one serial port from the dropdown, this function will execute
def …
Run Code Online (Sandbox Code Playgroud)

serial-port tkinter pyserial python-3.x

0
推荐指数
1
解决办法
132
查看次数

如何使用 tkinter 在 python 中创建选项菜单

我如何在 tkinter 中创建选项字段?例如,在 html 中是这样的:

<select>
  <option value="Option1">Option1</option>
  <option value="Option2">Option2</option>
  <option value="Option3">Option3</option>
  <option value="Option4">Option4</option>
</select>
Run Code Online (Sandbox Code Playgroud)

python tkinter option

0
推荐指数
1
解决办法
54
查看次数

我在输出结束时得到 { }。这是什么原因造成的,我该如何删除它?

我正在尝试使用一个简单的 gui,它在同一个窗口中使用“秘密号码”/密钥标识符对消息进行加密和解密以获得乐趣。到目前为止,它有效,我对它非常满意。我唯一的问题是我在 crypt() 函数中得到了我想要的输出返回,然后是 {}。使用普通的 print() 函数,我没有这个问题。但是,使用 GUI 确实如此。我想这是包 tkinter 这样做吗?

我的代码:

from tkinter import *
import tkinter.messagebox


def crypt():
    so = int(nu1.get())
    inp = str(nu2.get().upper())
    old_dic = {chr(i): i * (int(so)+int(so))for i in range(ord("A"), ord("A") + 26)}   
    if len(inp) >= 1:
        bit = list(inp)
        spell = list(map(old_dic.get, bit))
        spell = spell[::-1]            
        ans1 = (*spell, "")
        blank4.insert(0, ans1)
        
    else:
        print("Improper input.")
        
main = Tk()
Label(main, text = "Enter secret number:").grid(row=0)
Label(main, text = "Cryptify:").grid(row=1)
Label(main, text = "Encrypted output:").grid(row=2)

Button(main, …
Run Code Online (Sandbox Code Playgroud)

python tkinter

0
推荐指数
1
解决办法
58
查看次数

Tkinter:类型错误:+ 不支持的操作数类型:'int' 和 'str'

我试图在 python 中使用 tkinter 创建一个库:

import tkinter as tk

class Screen():
    def make_window(self, width: int=None, height: int=None, title: str=None) -> int:
        self.width = width
        self.height = height
        self.title = title
        new_window = tk.Tk()
        if width or height is not None:
            new_window.geometry(width + "x" + height)

win = Screen()
win.make_window()
Run Code Online (Sandbox Code Playgroud)

它工作正常,我得到了这个漂亮的小窗口: 在此处输入图片说明

但如果我这样做:

import tkinter as tk

class Screen():
    def make_window(self, width: int=None, height: int=None, title: str=None) -> int:
        self.width = width
        self.height = height
        self.title = title
        global new_window
        new_window = …
Run Code Online (Sandbox Code Playgroud)

python tkinter

0
推荐指数
1
解决办法
101
查看次数

尝试在python中制作定时器,错误在哪里?

我对 python 编程很陌生,我试图创建一个倒数计时器。我为计时器写下了以下代码,但它不起作用。你能帮忙找出错误在哪里吗?(我在这个网站上做了一些研究,发现了一些与计时器有关的问题。事实上,大部分代码都是根据另一个答案编写的,但我对其进行了一些更改,因为该代码用于时钟,我正在尝试做一个计时器。)

from tkinter import *
from tkinter import messagebox

class alarmclock():
    
    def __init__(self):
        self.alarm = Tk()
        self.l0 = Label(self.alarm, text = '----------- Alarm clock 1 -----------')
        self.l1 = Label(self.alarm, text = 'Please type in the time:')
        self.e0 = Entry(self.alarm)
        self.l2 = Label(self.alarm)
        self.b0 = Button(self.alarm, text = 'Start countdown', command = lambda: self.timer)
        self.l0.grid(row = 0, column = 0, columnspan = 2)
        self.l1.grid(row = 1, column = 0, padx = 10, pady =5)
        self.e0.grid(row = 1, column = …
Run Code Online (Sandbox Code Playgroud)

python tkinter

0
推荐指数
1
解决办法
87
查看次数