Radosław Napisano Lipiec 6 Zgłoszenie Share Napisano Lipiec 6 Gdy tak ustawię to `.move` dla QMainWindow cz Qwidget nie jest w stanie ustawić okna na wybranej przez mnie pozycji. Gdy ustawię w KDE: otwieraj okna przypadkowo to pozycjonowanie w Qt przez .move działa. Czy to normalne? Dla jasności to moje okno Qt mogę przestawić w "Zasadach okien" robiąc regułę, ale to przecież nie o to chodzi. Radek Głębicki Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
tomcio Napisano Lipiec 7 Zgłoszenie Share Napisano Lipiec 7 Wydaje mi się, że to normalne. W końcu to window managery są od tego, aby decydować gdzie i jak rozmieszczać okna. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Radosław Napisano Lipiec 7 Autor Zgłoszenie Share Napisano Lipiec 7 Ale dla okien systemowych, a nie obcych. A nawet niech będzie. Tylko dlaczego funkcja .move(x,y) dla widgetu Qt nie może ich przestawić? Tu leży mój problem. Chcę zrobić sobie prosty toolbwr na boku ekranu i kiszka. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@sunrise Napisano Lipiec 7 Zgłoszenie Share Napisano Lipiec 7 W ogóle nie pokazałeś nawet linii kodu, więc ciężko stwierdzić co jest nie tak. U mnie np. taki kod # importing the required libraries from PyQt5.QtGui import * from PyQt5.QtWidgets import * import sys class Window(QMainWindow): def __init__(self): super().__init__() # set the title self.setWindowTitle("Move") # setting the geometry of window self.setGeometry(0, 0, 200, 600) # creating a label widget self.widget = QLabel('Label', self) # moving the widget # move(left, top) self.widget.move(50, 50) # setting the window position self.move(50, 50) # show all the widgets self.show() # create pyqt5 app App = QApplication(sys.argv) # create the instance of our Window window = Window() # start the app sys.exit(App.exec()) działa bez problemu (MATE Desktop) Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Radosław Napisano Lipiec 7 Autor Zgłoszenie Share Napisano Lipiec 7 Mój kod działa jak wyłączę w KDE środkowanie nowo otwartych okien. To wina KDE. Jestem tylko zaskoczony, że działa również na zewnętrzne programy. One sa Qt jak KDE i pewnie dlatego. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Radosław Napisano Lipiec 8 Autor Zgłoszenie Share Napisano Lipiec 8 No ciekawe. Odpaliłem F30 na starym dysku. Tam po ustawieniu: wyśrodkowane, w ustawieniach KDE wszystko jest ok. Znaczy się mój program startuje tam gdzie chcę, czyli reaguje na .move(). To oznacza, że nowe KDE z F40 jest w tej kwestii zmienione, wg mnie na gorsze. I zniknęła opcja "Mądre" coby to nie znaczyło. Czekam na opcje "Użyj AI" z wyborem: Meta, Google, OpenAI. ;-D Czyli muszę używać: "Przypadkowe" Czyli mój problem został rozwiązany, albo i nie. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Radosław Napisano Lipiec 8 Autor Zgłoszenie Share Napisano Lipiec 8 Takie coś znalazłem o moim. chyba, problemie (taki programik jak mój): A dalej: Czyli to coś z Wayland? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Radosław Napisano Lipiec 13 Autor Zgłoszenie Share Napisano Lipiec 13 Generalnie sprawa jest jasna. Wayland nie obsługuje .move() lub .setGeometry() jeśli chodzi o pozycję okna. :-( Ma się używać pozycji dostarczonych przez Wayland. Środek, krawędzie, przypadkowe. itp. Mnie jedynie zastanawia jak w KDE w Ustawieniach w Zasadach okien można wymusić przeniesienie danego okna na pozycję (x,y) ? Tak teraz robię. I jeszcze Tkinter jest w stanie pozycjonować właściwie. Więc coś tu nie tego. Pozdrawiam Radek Głębicki Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
tomcio Napisano Lipiec 14 Zgłoszenie Share Napisano Lipiec 14 16 godzin temu, Radosław napisał: I jeszcze Tkinter jest w stanie pozycjonować właściwie. Więc coś tu nie tego. Właśnie że ten tego Qt oraz PyQt obsługują natywnie Waylanda, Tkinter go nie obsługuje, jest ogarniany przez XWaylanda, więc można w nim w zasadzie wszystko, co w X11. Odpal sobie konsolę debugowania Kwin to zobaczysz różnicę qdbus org.kde.KWin /KWin org.kde.KWin.showDebugConsole 16 godzin temu, Radosław napisał: Ma się używać pozycji dostarczonych przez Wayland. Środek, krawędzie, przypadkowe. itp. No nie do końca, o tym decyduje window manager – w przypadku KDE jest to Kwin, w przypadku Gnome jest to Mutter i tak dalej. I żeby dodać pikanterii całej sprawie każdy window manager (czy bardziej precyzyjnie wayland compositor) może mieć różny zestaw opcji albo nawet nie mieć ich wcale. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Radosław Napisano Lipiec 14 Autor Zgłoszenie Share Napisano Lipiec 14 A jak to się ma do "Zasad okien" i możliwości ustawiania okna tam? I jeśli znasz ten problem to jest jakieś rozwiązanie? Wymusić otwarcie okna QT przez XWayland? Pozdrawiam Radek Głębicki Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
tomcio Napisano Lipiec 14 Zgłoszenie Share Napisano Lipiec 14 Godzinę temu, Radosław napisał: Wymusić otwarcie okna QT przez XWayland? Zmienna QT_QPA_PLATFORM="xcb" Jeśli mowa o natywnym Waylandzie to masz tylko dwa wyjścia (albo trzy) 1. poszperać w dokumentacji kwin/plasmy – być może jest to obsługiwane, tylko trzeba się do tego w jakiś sposób odwołać, jeśli okaże się, że faktycznie jest to niemożliwe to zgłosić feature request 2. napisać własnego kompozytora, który będzie miał taką funkcjonalność (plus funkcjonalność kwin, jeśli nadal chciałbyś korzystać z KDE) 3. Skorzystać z layer-shell – w teorii jest on przygotowany pod tworzenie różnego rodzaju paneli, widgetów itp. W jaki sposób w praktyce wykorzystać – nie mam pojęcia, ale odsyłam tu https://invent.kde.org/plasma/layer-shell-qt Co do samego wykorzystania to poprzez tą zmienną – tylko uwaga mi to otwiera program na pierwszym planie na całym monitorze i w dodatku bez kontrolek sterowania oknem – jedyny sposób zamknięcia to ubicie procesu. No i warto mieć dwa monitory QT_WAYLAND_SHELL_INTEGRATION=layer-shell O więcej mnie nie pytaj, dalej raczej nie będę w stanie pomóc – o problemie usłyszałem dopiero od ciebie, a w dodatku z programowaniem mam niewiele wspólnego – od potrafię napisać prosty skrypt w pythonie czy bashu, ale niewiele więcej 1 Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Radosław Napisano Lipiec 14 Autor Zgłoszenie Share Napisano Lipiec 14 Ustawienie zmiennej działa. Okno się robi tak bardzo X, że nawet ikonkę dostało od X11. Ale pojawiły się problemy przez to, że "wypadło" kwin. Pierwszy to jest na liście przełączania okien (alt + tab), a drugie to lądowało na spodzie. Dla drugiego problemu to: .setWindowFlags(Qt.Window | Qt.CustomizeWindowHint | Qt.WindowStaysOnTopHint) Dzięki za podpowiedzi. Pozostałe są raczej zaawansowane więc nie dla mnie. Dzięki. Jednak muszę ustawiać za pomocą "Zasad okien". Będę z tym żył. Pozdrawiam Radek Głębicki Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się