相关疑难解决方法(0)

overrideredirect(1) 之后的 Tkinter 自定义调整大小事件

受这个问题的启发,我想为我的根窗口编写我自己的调整大小函数。但我只是注意到我的代码显示了一些性能问题。如果你快速调整它的大小,你会看到窗口没有像我希望的那样找到它的高度提示,它“断断续续”。(这更像是一个摆动)

有人知道为什么会这样吗?我最好的猜测是tkinter事件处理程序对它来说太慢了。也许我做的数学不是最快的方法。

也许我应该说我确实update_idletasks()在不同的地方尝试过几次。我尝试过的另一种方法是使用该after方法,但它使情况变得更糟。

无论如何,这是一个示例代码:

import tkinter as tk


class FloatingWindow(tk.Tk):
    def __init__(self):
        super().__init__()
        self.overrideredirect(True)
        self.center()

        self.label = tk.Label(self, text="Grab the upper-right corner to resize")
        self.label.pack(side="top", fill="both", expand=True)

        self.grip2 = tk.Label(self,bg='blue')
        self.grip2.place(relx=1.0, rely=0, anchor="ne")
        self.grip2.bind("<B1-Motion>",self.OnMotion)

    def OnMotion(self, event):
        abs_x = self.winfo_pointerx() - self.winfo_rootx()
        abs_y = self.winfo_pointery() - self.winfo_rooty()
        if abs_x >0:
            x = self.winfo_rootx()
            y = self.winfo_rooty()+abs_y
            height = self.winfo_height()-abs_y
            if height >0:
                self.geometry("%dx%d+%d+%d" % (abs_x,height,
                                               x,y))
            
        
    def center(self):
        width = 300 …
Run Code Online (Sandbox Code Playgroud)

python tkinter

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

QDialog删除标题栏

网络上充斥着类似的问题,但是对于我来说,没有什么适合解决当前问题的方法。

在我的QT-C ++应用程序中,我有一个带有某些功能的主窗口形式,有一个QPushButton,按此按钮可以打开QDialog。现在,表单中的所有功能都可以正常工作,但是我希望最终的应用程序没有任何顶部标题栏。即没有关闭/最小化/最大化按钮。

在我的main.cpp文件中

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
    w.show();
    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

结果,主窗口变为-

在此处输入图片说明

对于dialog.cpp窗口,我设置了-

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    //QDialog Dialog(0, Qt::CustomizeWindowHint|Qt::WindowTitleHint);  --- used this also; no use

    QDialog Dialog(0, Qt::FramelessWindowHint | Qt::Dialog);
Run Code Online (Sandbox Code Playgroud)

但是QDialog的标题栏仍然保留,看起来像-

在此处输入图片说明

我要去哪里错了?关于如何删除关闭按钮和标题栏的任何想法?

c++ qt4 qdialog

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

是否可以创建仅带边框的winapi窗口

所以我正在尝试创建一个只显示其边框并让身体其他部分透视的窗口.我已经创建了一个模拟我头脑中的样子:

透明窗口,仅显示边框并显示其下方的内容

我尝试在具有透明像素的缓冲区中进行blitting但是没有达到预期的效果.

有任何想法吗 ?

c++ winapi dxgi

4
推荐指数
1
解决办法
367
查看次数

如何使WS_THICKFRAME不可见,但仍在MFC中运行?

所以,我创建了一个具有样式的对话框:WS_THICKFRAME.这个WS_THICKFRAME为对话框提供了调整窗口大小的功能,但我的问题是我不会在窗口周围看到边框.如何使边框不可见,但仍具有重新尺寸功能?

一个例子是最有帮助的!谢谢!

下面是我创建的对话框的模板样式:

IDD_GADGETTRANSLUCENTDIALOG DIALOGEX 0, 0, 320, 200
STYLE DS_ABSALIGN | DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_SYSMENU | WS_THICKFRAME
Run Code Online (Sandbox Code Playgroud)

c++ mfc

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

标签 统计

c++ ×3

dxgi ×1

mfc ×1

python ×1

qdialog ×1

qt4 ×1

tkinter ×1

winapi ×1