Společnost Cloudflare představila Cloudflare OS (GitHub), tj. open source platformu navrženou pro integraci umělé inteligence (agentů) přímo do pracovních procesů organizací.
Byla vydána nová verze 5.13 svobodného multiplatformního softwaru pro konverzi a zpracování digitálních fotografií primárně ve formátů RAW RawTherapee (Wikipedie). Vedle zdrojových kódů je k dispozici také balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
Jean-Baptiste Kempf na svém blogu představil novou verzi 9.0 "Lei" kolekce svobodného softwaru umožňujícího nahrávání, konverzi a streamovaní digitálního zvuku a obrazu FFmpeg (Wikipedie).
Richard Hughes oznámil, že službu Linux Vendor Firmware Service (LVFS) umožňující aktualizovat firmware zařízení na počítačích s Linuxem, nově sponzoruje také společnost NVIDIA.
Edvard Rejthar na blogu zaměstnanců CZ.NIC představil svou aplikaci SlideRshow (GitHub). Funguje jako prohlížeč fotek, ale i jako jejich organizér a prezentátor. Neinstaluje se, běží přímo v prohlížeči. Bez serveru. Offline.
Kermit, tj. protokol pro přenos souborů, vznikl před 45 lety. Při této příležitosti byla po 15 letech od vydání poslední stabilní verze 9.0.302 vydána nová stabilní verze 11 implementace C-Kermit. S podporou IPv6.
První verze konverzního nástroje Pandoc byla vydána před 20 lety. Jeho autor John MacFarlane při tomto výročí rekapituluje jednotlivé etapy vývoje a přidávání nových funkcí – rozšíření nejen Markdownu a podporu mnoha dalších formátů.
Srpen přinesl nejen další spalující vedro, ale také Virtuální Bastlírnu s neméně žhavými novinkami. Využijte tedy předpovědi na deštivý čtvrteční večer a od 20:00 se připojte online k tomuto neformálnímu setkání kutilů, techniků a vědců, kde se strahovskými bastlíři proberete nejzajímavější věci, na které jste narazili za poslední měsíc. Pokud jde o novinky, řeč zcela jistě přijde na systém INDX pro tiskárny Průša, který na konci
… více »Firma T-Mobile blokovala „dezinformační web“ AC24 bez toho, aniž by k tomu měla závazný pokyn orgánů veřejné moci. Píše to ve svém rozsudku Městský soud v Praze, který po čtyřech letech uzavřel kauzu blokace zmíněného webu. Operátor musí uhradit škodu ve výši 35 tisíc korun. Advokát společnosti T-Mobile se snažil i u odvolacího senátu argumentovat tím, že firma jednala v dobré víře, když na stránky omezila přístup poté, co ji k tomu vyzvalo
… více »Padla obžaloba v bitcoinové kauze. Státní zástupkyně chce pro Blažka 6,5 roku vězení, pro Titze 8 let.
se motám kolem problému, jak určit polohu widgetu na obrazovce. Google mi moc nepomáhá a chatGPT odpověděl dobře, ale jeho odpověď se vztahovala na jim uvedený příklad:
from PySide2.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
layout = QVBoxLayout()
button = QPushButton('Můj tlačítko', self)
button.clicked.connect(self.on_button_click)
layout.addWidget(button)
self.setLayout(layout)
def on_button_click(self):
# Získání globálních souřadnic tlačítka
global_pos = self.mapToGlobal(self.sender().pos())
print('Globální souřadnice tlačítka:', global_pos.x(), global_pos.y())
if __name__ == '__main__':
app = QApplication([])
widget = MyWidget()
widget.show()
app.exec_()
Jakmile Widget zaměním za okno a oknu nastavím centralWidget, mapToGlobal vrací polohu asi centralWidgetu: (měřeno KRulerem)
...
...
self.centralW = QWidget()
layout = QVBoxLayout()
button = QPushButton('Můj tlačítko', self)
button.clicked.connect(self.on_button_click)
layout.addWidget(button)
self.centralW.setLayout(layout)
self.setCentralWidget(self.centralW)
def on_button_click(self):
# Získání globálních souřadnic tlačítka
s = self.sender().pos()
print(f"sender {s}")
cw = self.centralW.pos()
print(f"central {cw}")
global_pos = self.mapToGlobal( self.sender().pos())
print('Globální souřadnice tlačítka:', global_pos.x(), global_pos.y())
...
...
Opravdový přiklad, kde mapTo... chci použít, je trochu složitější, a jediný způsob určení polohy, který jsem vyšpekuloval je:
w = self.ui.qpb_DoSearch
pos = w.pos()
print(pos)
while p := w.parentWidget():
pos = pos + p.pos()
print(p, p.pos())
w = p
print(f"pos: {pos}")
tedy sečíst polohu prvku s polohou všech nadřazených prvků. Výsledek je SKORO přesný. Jsou tu ale dvě věci, které mi zatím brání toto použít:
1) řešení mi připadá kostrbaté
2) ta nepřesnost je ASI způsobená marginy prvků (to nevím jistě) a v případě nějakých šílených marginů mi tento způsob připadá nevhodný.
Možná jdu na problém úplně špatně, cílem je zobrazit krátké varování nad widgetem, že už není další nález hledaného řetězce. Mám to vyřešené přes QDialog bez dekorace, ten QDialog je zvlášť třída, a aby se zobrazil na správném místě, musím znát pozici widgetu. Zatím jsem to vymyslel takto, ale jak píšu, možná to není nejlepší způsob..
Jaké jsou vaše nápady? Rád si počtu rady chytřejších..
Děkuji
M
Řešení dotazu:
QDialog d(widget.parentWidget())
d.move(widget.pos())
alebo bez parent widgetu
QDialog d
d.move(widget.mapToGlobal(QPoint(0, 0)))
https://doc.qt.io/qt-6/application-windows.html#window-geometry
a ... fakt to takto funguje. GPT mi radil něco úplně jiného, ale to fungovalo jen za určitých podmínek. Toto tvé použití jsem neznal, a připadalo mi trochu ujeté, no ale fakt funguje..
Takže děkuji za popostrčení.
M.
Tiskni
Sdílej: