python 使用tk报错

Preface

最近刚开始学习用python 的时候遇到一个对于我这样的新手来说比较棘手的问题. 我查询了好久, 大多数给出的答案就是代码写错了 而且是不给错误行数的那种.😵‍💫

查询了很久都没找到一个靠谱的解决方案, 干脆自己来排除哪里的问题; 我就一个一个代码块的去试, 果然被我找到了. 原来是 tkinter 在捣鬼

然后我又开始查询各种 tkinter 的用法, 确实找到不少, 但是都不能解决问题,
因为他们的教程都只是这这几行

from tkinter import *
import tkinter * as tk

# 然后还有这两行
root = tk.Tk()
root.withdraw()

我觉得我也妹写错啊, 尝试各种方式没有解决. 我就跑去官网看文档;

解决方法

这是官方的文档

问题1:

对比了一下, 唯一的区别就是, 我把代码放到了。startup 里面 官网例子在 外面放着

于是我就改用了官网的写法, 把 tk 初始化放在了 class 外面, 果然把问题解决了;

除了这个问题外还要注意一个问题;

问题2: tk.Tk() 这里的 Tkk 是小写

在这里插入图片描述
在这里插入图片描述

错误信息 并没有什么实际作用/提示
2022-12-15 17:26:02.190 Python[6278:18183396] -[NSApplication macOSVersion]: unrecognized selector sent to instance 0x7fd7e0b5a270
2022-12-15 17:26:02.191 Python[6278:18183396] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSApplication macOSVersion]: unrecognized selector sent to instance 0x7fd7e0b5a270'
*** First throw call stack:
(
        0   CoreFoundation                      0x00007ff80e0357c3 __exceptionPreprocess + 242
        1   libobjc.A.dylib                     0x00007ff80dd95bc3 objc_exception_throw + 48
        2   CoreFoundation                      0x00007ff80e0ba36b -[NSObject(NSObject) __retain_OA] + 0
        3   CoreFoundation                      0x00007ff80df9c515 ___forwarding___ + 1356
        4   CoreFoundation                      0x00007ff80df9bf38 _CF_forwarding_prep_0 + 120
        5   libtk8.6.dylib                      0x000000010765cb24 GetRGBA + 50
        6   libtk8.6.dylib                      0x000000010765c5e9 SetCGColorComponents + 140
        7   libtk8.6.dylib                      0x000000010765c952 TkpGetColor + 325
        8   libtk8.6.dylib                      0x00000001075bc09d Tk_GetColor + 143
        9   libtk8.6.dylib                      0x00000001075af002 Tk_Get3DBorder + 118
        10  libtk8.6.dylib                      0x00000001075aee8a Tk_Alloc3DBorderFromObj + 127
        11  libtk8.6.dylib                      0x00000001075bd3a0 DoObjConfig + 986
        12  libtk8.6.dylib                      0x00000001075bceae Tk_InitOptions + 333
        13  libtk8.6.dylib                      0x00000001075bcda6 Tk_InitOptions + 69
        14  libtk8.6.dylib                      0x00000001075e4931 CreateFrame + 1550
        15  libtk8.6.dylib                      0x00000001075e4bb5 TkListCreateFrame + 137
        16  libtk8.6.dylib                      0x00000001075dd40c Initialize + 2002
        17  _tkinter.cpython-39-darwin.so       0x000000010704ed44 Tcl_AppInit + 84
        18  _tkinter.cpython-39-darwin.so       0x000000010704963a Tkapp_New + 602
        19  _tkinter.cpython-39-darwin.so       0x0000000107048f61 _tkinter_create + 561
        20  Python                              0x0000000106401c7f cfunction_vectorcall_FASTCALL + 91
        21  Python                              0x00000001064abe0d call_function + 168
        22  Python                              0x00000001064a5851 _PyEval_EvalFrameDefault + 26206
        23  Python                              0x000000010649e06e _PyEval_EvalCode + 398
        24  Python                              0x00000001063b6304 _PyFunction_Vectorcall + 413
        25  Python                              0x00000001063b5a30 _PyObject_FastCallDictTstate + 87
        26  Python                              0x00000001064248bb slot_tp_init + 192
        27  Python                              0x0000000106429d04 type_call + 272
        28  Python                              0x00000001063b5832 _PyObject_MakeTpCall + 127
        29  Python                              0x00000001064abe7c call_function + 279
        30  Python                              0x00000001064a5851 _PyEval_EvalFrameDefault + 26206
        31  Python                              0x00000001063b6228 _PyFunction_Vectorcall + 193
        32  Python                              0x00000001064abe0d call_function + 168
        33  Python                              0x00000001064a46e5 _PyEval_EvalFrameDefault + 21746
        34  Python                              0x000000010649e06e _PyEval_EvalCode + 398
        35  Python                              0x00000001063b6304 _PyFunction_Vectorcall + 413
        36  Python                              0x00000001064abe0d call_function + 168
        37  Python                              0x00000001064a46e5 _PyEval_EvalFrameDefault + 21746
        38  Python                              0x00000001063b6228 _PyFunction_Vectorcall + 193
        39  Python                              0x00000001064abe0d call_function + 168
        40  Python                              0x00000001064a46e5 _PyEval_EvalFrameDefault + 21746
        41  Python                              0x00000001063b6228 _PyFunction_Vectorcall + 193
        42  Python                              0x00000001064abe0d call_function + 168
        43  Python                              0x00000001064a46e5 _PyEval_EvalFrameDefault + 21746
        44  Python                              0x000000010649e06e _PyEval_EvalCode + 398
        45  Python                              0x0000000106498e7f builtin_exec + 379
        46  Python                              0x0000000106401c7f cfunction_vectorcall_FASTCALL + 91
        47  Python                              0x00000001064abe0d call_function + 168
        48  Python                              0x00000001064a3d02 _PyEval_EvalFrameDefault + 19215
        49  Python                              0x000000010649e06e _PyEval_EvalCode + 398
        50  Python                              0x00000001063b6304 _PyFunction_Vectorcall + 413
        51  Python                              0x00000001064abe0d call_function + 168
        52  Python                              0x00000001064a3d02 _PyEval_EvalFrameDefault + 19215
        53  Python                              0x000000010649e06e _PyEval_EvalCode + 398
        54  Python                              0x00000001063b6304 _PyFunction_Vectorcall + 413
        55  Python                              0x00000001064abe0d call_function + 168
        56  Python                              0x00000001064a3d02 _PyEval_EvalFrameDefault + 19215
        57  Python                              0x000000010649e06e _PyEval_EvalCode + 398
        58  Python                              0x00000001063b6304 _PyFunction_Vectorcall + 413
        59  Python                              0x00000001064abe0d call_function + 168
        60  Python                              0x00000001064a3db1 _PyEval_EvalFrameDefault + 19390
        61  Python                              0x000000010649e06e _PyEval_EvalCode + 398
        62  Python                              0x00000001064f9092 run_eval_code_obj + 128
        63  Python                              0x00000001064f8fea run_mod + 96
        64  Python                              0x00000001064f9cdb PyRun_StringFlags + 140
        65  Python                              0x00000001064f9c17 PyRun_SimpleStringFlags + 69
        66  Python                              0x0000000106515174 Py_RunMain + 404
        67  Python                              0x000000010651671c Py_BytesMain + 42
        68  dyld                                0x000000010936f52e start + 462
)
libc++abi: terminating with uncaught exception of type NSException
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值