Как сделать рамку без строки заголовка, но с границами изменения размера? - PullRequest
1 голос
/ 23 июня 2019

Я хочу, чтобы у меня не было строки заголовка, но можно изменять границы.Когда я пытаюсь использовать этот код, в верхней части кадра создается небольшая белая рамка:

class MyFrame(wx.MiniFrame):
    def __init__(self):
        super(MyFrame, self).__init__(
            None, -1, '', (100,100), (200,200), wx.NO_BORDER^wx.RESIZE_BORDER
            )

        self.pnl =wx.Panel(self , -1,(0,0), (200,200), )
        self.pnl.SetBackgroundColour(wx.RED)

        self.closeButton = wx.Button(self.pnl, 1000, 'close',(10,10) ,(50,30))
        self.Bind(wx.EVT_BUTTON, self.quit, self.closeButton)

Ответы [ 2 ]

1 голос
/ 23 июня 2019

Вы не можете объявить NO_BORDER и RESIZE_BORDER по определению, у вас не может быть границы с изменяемым размером, если нет границы.
Самое близкое, что я могу получить, другие могут знать лучше, это иметь минимальную границу, которую можно изменить.

import wx

class MyFrame(wx.MiniFrame):
    def __init__(self):
        super(MyFrame, self).__init__(
            None, -1, '', (100,100), (200,200), style=wx.RESIZE_BORDER)

        self.pnl =wx.Panel(self , -1,(0,0), (200,200), )
        self.pnl.SetBackgroundColour(wx.RED)

        self.closeButton = wx.Button(self.pnl, 1000, 'close',(10,10) ,(50,30))
        self.Bind(wx.EVT_BUTTON, self.quit, self.closeButton)

    def quit(self,event):
        self.Destroy()

if __name__ == "__main__":
    app = wx.App(False)
    frame = MyFrame()
    frame.Show()
    app.MainLoop()

enter image description here

Обратите внимание на граббер в правом нижнем углу. Это позволяет изменить размер окна

0 голосов
/ 25 июня 2019

Вы можете найти это полезным.

import wx
class MyFrame(wx.Frame):
    def __init__(self):
        super().__init__(None, -1, pos=(300, 150), size=(320, 250),style=wx.NO_BORDER)
        self.panel = wx.Panel(self)
        self.text = wx.StaticText(self.panel, -1, label="Left click mouse, move and release\nor Move the window")
        self.panel.Bind(wx.EVT_LEFT_DOWN, self.OnDown)
        self.panel.Bind(wx.EVT_LEFT_UP, self.OnUp)
        self.panel.Bind(wx.EVT_MOTION, self.OnDrag)
        self.Show()

    def OnDown(self, event):
        x, y = event.GetPosition()
        print("Click coordinates: X=",x," Y=",y)

    def OnUp(self, event):
        x, y = event.GetPosition()
        print("Release coordinates: X=",x," Y=",y)

    def OnDrag(self, event):
        if not event.Dragging():
            return
        x, y = event.GetPosition()
        obj = event.GetEventObject()
        sx, sy = obj.GetScreenPosition()
        self.Move(sx+x,sy+y)

app = wx.App()
window = MyFrame()
app.MainLoop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...