鱼C论坛

 找回密码
 立即注册
查看: 891|回复: 5

同样的代码在不同电脑下运行结果不一样 求大神解答

[复制链接]
发表于 2018-7-25 07:51:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一样的代码,调用tkinter 弹出对话框等待输入,但是在两台MacBook pro 下运行的结果不一样。两台都装了Anaconda 3.6,anaconda version 也都一样!求大神帮忙解答一下。难道是两台电脑系统软件不一样导致的?万分感谢。


MacBook pro1 :
version:10.13.3。MacOs High Sierra
运行没问题。


MacBook pro2:
version:10.12.6 MacOs Sierra
Python Launch 一直在下边Dock 那里反复弹出。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-7-25 09:14:43 | 显示全部楼层
版本不一样,对相同代码的支持可能不同,所以会产生一些兼容性的问题。
建议查一下代码里是否有与兼容性有关的部分。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-25 12:49:03 | 显示全部楼层
TyCk 发表于 2018-7-25 09:14
版本不一样,对相同代码的支持可能不同,所以会产生一些兼容性的问题。
建议查一下代码里是否有与兼容性有 ...

我这个程序就是在弹出的对话框里边输入两个不同的数字启动两个应用程序。 不太清楚如何检查是否有兼容性问题。。谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-25 15:03:57 | 显示全部楼层
帖代码吧~
当然也有可能是老版本运行库有bug
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-26 00:29:40 | 显示全部楼层
本帖最后由 sotmaomao 于 2018-7-27 00:45 编辑
无符号整形 发表于 2018-7-25 15:03
帖代码吧~
当然也有可能是老版本运行库有bug


#!/usr/bin/env python
import sys, os
from tkinter import *
import subprocess, threading, time
from tkinter import messagebox


register_app = []

def add_app(code=()):                        
    global register_app
    register_app.append(code)

add_app(('11', 'Safari.app'))
add_app(('22', 'Google Chrome.app'))


def callback(a):
    scan_input=str(product.get())
    idx = -2                                   
    for idy, app in enumerate(register_app):
        if app[0].find(scan_input) == 0 and idx == -2:   
            idx = -1
        if app[0] == scan_input:
            idx = idy

    if idx == -2:                             
        product.delete(0, END)
        product.focus_set()
        messagebox.showinfo(message='Incorrect !')

    elif idx >= 0:                        
            product.delete(0, END)
            product.focus_set()
            p = subprocess.call(
                ["/usr/bin/open", "-g", "-a", register_app[idx][1]],)  # open app
            os.system("osascript -e 'activate application \"{}\"'".format(register_app[idx][1]))    # show in front

            for app in register_app:           # close the other application or not close
                if app[0] != scan_input:
                    os.system('kill $(ps -ax | grep "{}" | head -n 1 | awk \'{{print $1}}\')'.format(app[1]))

window = Tk()
window.geometry('450x300+400+200')
window.eval('tk::PlaceWindow %s center' % window.winfo_pathname(window.winfo_id()))
window.wm_attributes("-topmost",1)
window.title("123456")
window.config(bg='white')
label=Label(window,text='Please scan Product ID')
label.pack(side=TOP,padx=100,pady=90)
label.config(font=("Arial", 14))

# scan input value
product=Entry(window)
product.focus_set()
product.pack()



product.bind('<KeyRelease>', callback)

# window.focus_set()
def raise_app(root, product):
    while True:
        root.lift()
        root.attributes("-topmost", True)
        root.after(0, lambda: root.attributes("-topmost", False))
        root.focus()
        product.lift()
        product.focus()
        product.focus_force()
        product.grab_set()
        product.grab_release()
        time.sleep(1)

threading.Thread(target=raise_app, args=(window,product)).start()

window.mainloop()


------------------------------------------------------------------------------------------
还请版主帮忙看看 万分感谢!

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-1 00:42:51 | 显示全部楼层
本帖最后由 sotmaomao 于 2018-8-9 00:52 编辑

应该是Python Launcher 自动关联问题。Py charm 设置一下就好了。谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-1 01:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表