小编sid*_*rgt的帖子

在PySide中使用QtHostinfo.lookupHost

我正在开展一个项目,我想确认本地网络上是否存在主机.在Qt的QtNetwork包中,该QHostInfo::lookupHost方法是一种搜索主机的便捷方式,无需实现任何类型的ping或依赖于ping系统调用.它的异步调用可以方便地创建一个对话框,等待调用返回,在对话框或主程序中有一个槽来处理返回.

来自Qt的QHostInfo文档:

要异步查找主机的IP地址,请调用lookupHost(),它将主机名或IP地址,接收方对象和插槽签名作为参数并返回ID.您可以通过使用查找ID调用abortHostLookup()来中止查找...

结果准备好后调用插槽.结果存储在QHostInfo对象中.调用addresses()获取主机的IP地址列表,使用hostName()获取查找的主机名.


来自PySide的文档QHostInfo详细用法lookupHost但我认为它可能是从Qt文档自动生成的,因为默认情况下,该lookupHost方法在QtNetwork类型系统定义中被声明为私有方法.

是否有特殊原因在PySide实现中将此方法声明为私有?它是否与调用的异步性质和Python的GIL有关?

python qt pyside

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

使用PyInstaller onefile选项和清单将UAC设置为requireAdministrator

好吧,我一直在四处寻找这个问题.我正在GraphicScriptWizard.exe使用-i -F -w和-m选项构建一个使用PyInstaller 2.0版调用的应用程序.

我已经定义了与-m选项一起使用的清单文件,它GraphicScriptWizard.exe.manifest具有以下内容:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
  <assemblyIdentity version="1.0.0.0"
     processorArchitecture="x86"
     name="GraphicScriptWizard"
     type="win32"/> 

  <!-- Identify the application security requirements. -->
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="requireAdministrator"
          uiAccess="false"/>
        </requestedPrivileges>
       </security>
  </trustInfo>
</assembly>
Run Code Online (Sandbox Code Playgroud)

使用此清单和命令行选项,我没有得到提示提升的可执行文件.

为了完整起见,Pyinstaller生成的spec文件是:

# -*- mode: python -*-
a = Analysis(['GraphicScriptWizard.py'],
             pathex=[<Full Development Path>],
             hiddenimports=[],
             hookspath=None)
pyz = PYZ(a.pure)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name=os.path.join('dist', 'GraphicScriptWizard.exe'),
          debug=False,
          strip=None,
          upx=True,
          console=False , icon='SP.ico', manifest='GraphicScriptWizard.exe.manifest')
app = BUNDLE(exe,
             name=os.path.join('dist', 'GraphicScriptWizard.exe.app'))
Run Code Online (Sandbox Code Playgroud)

我尝试使用没有-m选项的pyinstaller进行编译,并使用命令嵌入mt:

mt.exe …
Run Code Online (Sandbox Code Playgroud)

python windows pyinstaller visual-studio

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

标签 统计

python ×2

pyinstaller ×1

pyside ×1

qt ×1

visual-studio ×1

windows ×1