【问题标题】:Equivalent to Win32 'SetProp' in Qt?相当于 Qt 中的 Win32 'SetProp'?
【发布时间】:2012-12-29 20:12:57
【问题描述】:

在 Win32 API 中,我们有 2 个函数称为“SetProp”和“GetProp”来设置和获取由 HWND 标识的窗口的属性

设置属性: http://msdn.microsoft.com/en-us/library/ms633568%28VS.85%29.aspx

我有 2 个应用程序,一个用 Qt 编码,另一个用 Win32 API 编码。我需要某种标志,以便 Win32 中的应用程序可以识别 Qt 中的应用程序。

Qt中有没有等价的函数来设置和获取QMainWindow的属性?

【问题讨论】:

  • 如果你需要这样的东西,可能你会在你的窗口类中添加一个QHash 成员......
  • 通过窗口进行进程互操作是一种非常糟糕的做事方式。你不能只听一个套接字或命名管道吗?
  • 我想使用 socket o 管道是不必要的;我只需要 Qt 中的应用程序的小标志,以便 win32 中的应用程序知道 qt 是它的朋友
  • 你为什么不给你的类添加字段?!
  • 呃,哪个班?我正在尝试通过可执行文件名识别友好的应用程序,但是,这并不安全

标签: c++ qt winapi properties window


【解决方案1】:

我只会将QWidget::winId() 返回的 QMainWindow 的 HWND 与您在问题中提到的两个 Windows 函数一起使用。

有些相关...这里是访问与 QMainWindow 的 HWND 关联的其他属性的方法:

大部分都被窗口标志覆盖

Window Flags Example

Qt::WindowFlags

QWidget::setWindowFlags()

和小部件属性...

QWidget::setAttribute()

Qt::WidgetAttribute

【讨论】:

  • 我很困惑你为什么要使用 Qt 和 win32 API,这将你的目标平台限制在 Windows 上......
  • 我从他们想从另一个不一定运行 Qt 库的 win32 程序中找到一个 Qt 窗口的问题中收集到。要成为跨平台,两个进程/程序都应该有 Qt 库并使用 QLocalServer/QLocalSocket 并以这种方式进行通信。
【解决方案2】:

这应该会产生你的答案:

About using an undocumented class in Qt

(如果您喜欢冒险,请使用 setProperty 或未记录的类)。

http://doc.qt.digia.com/qt/qobject.html#setProperty

【讨论】:

    猜你喜欢
    • 2010-09-30
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    相关资源
    最近更新 更多