Byla vydána nová major verze 5.0 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v obsáhlých poznámkách k vydání. Videopředstavení na YouTube.
Cloudflare, tj. společnost poskytující "cloudové služby, které zajišťují bezpečnost, výkon a spolehlivost internetových aplikací", má výpadek.
Letos se uskuteční již 11. ročník soutěže v programování Kasiopea. Tato soutěž, (primárně) pro středoškoláky, nabízí skvělou příležitost procvičit logické myšlení a dozvědět se něco nového ze světa algoritmů – a to nejen pro zkušené programátory, ale i pro úplné začátečníky. Domácí kolo proběhne online od 22. 11. do 7. 12. 2025 a skládá se z 9 zajímavých úloh různé obtížnosti. Na výběru programovacího jazyka přitom nezáleží – úlohy jsou
… více »Byla vydána nová verze 2.52.0 distribuovaného systému správy verzí Git. Přispělo 94 vývojářů, z toho 33 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
VKD3D-Proton byl vydán ve verzi 3.0. Jedná se fork knihovny vkd3d z projektu Wine pro Proton. Knihovna slouží pro překlad volání Direct3D 12 na Vulkan. V přehledu novinek je vypíchnuta podpora AMD FSR 4 (AMD FidelityFX Super Resolution 4).
Poštovní klient Thunderbird byl vydán v nové verzi 145.0. Podporuje DNS přes HTTPS nebo Microsoft Exchange skrze Exchange Web Services. Ukončena byla podpora 32bitového Thunderbirdu pro Linux.
U příležitosti státního svátku 17. listopadu probíhá na Steamu i GOG.com již šestý ročník Czech & Slovak Games Week aneb týdenní oslava a také slevová akce českých a slovenských počítačových her.
Byla vydána nová verze 9.19 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze například nový balíček BirdNET-Go, tj. AI řešení pro nepřetržité monitorování a identifikaci ptáků.
Byla vydána nová verze 3.38 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.10 souvisejícího programovacího jazyka Dart (Wikipedie).
Organizace Apache Software Foundation (ASF) vydala verzi 28 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
QFileSystemWatcher. Když se v něm něco objeví tak chci načíst všechny řádky a hned jej zase vymazat.
Při prvním naplnění souboru, QFileSystemWatcher změnu souboru odchytí a spustí metodu checkFile(), která spustí metodu loadFile(STACK_FILE_PATH). A tady nastává chyba. Soubor se neotevře jen pro čtení a hned se vymaže. V logu se mi objeví "Proces nemá přístup k souboru, neboť jej právě využívá jiný proces.". Při dalším naplnění souboru už vše funguje jak má. Už opravdu netuším co dělám špatně. Mohl by mě někdo nakopnout správným směrem? děkuji
QFileSystemWatcher *fileWatcher;
fileWatcher = new QFileSystemWatcher(this);
fileWatcher->addPath(STACK_FILE_PATH);
connect(fileWatcher, SIGNAL(fileChanged(QString)), this, SLOT(checkFile()));
void Controller::checkFile()
{
if (connectionState)
fileSystem->loadFile(STACK_FILE_PATH);
}
void FileSystem::loadFile(const QString &fileName)
{
QFile file(fileName);
QStringList pathsList;
if (file.exists() && (file.size() > 0)) {
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
emit newLog(tr("Čtení"));
emit newLog(file.errorString());
} else {
QTextStream out(&file);
while (!out.atEnd()) {
QString line = out.readLine();
pathsList << line;
}
emit newListForCheck(pathsList);
file.close();
}
if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
emit newLog(tr("Výmaz"));
emit newLog(file.errorString());
} else {
QTextStream in(&file);
in << "";
file.close();
}
}
}
S QFileSystemWatcher můžeš narazit na spoustu problémů lišících se platformu od platformy. Mně se osvědčilo vždy na začátku slotu napojeném na fileChanged/directoryChanged cestu z "wočru" odebrat, provést co je třeba a na konci slotu cestu znovu přidat. Stávalo se mi v některých případech, že signál o změně přišel jen jednou. Možná to vyřeší tvůj problém s omezeným přístupem k souboru.
Ještě pár tipů:
while (!out.atEnd()) {
QString line = out.readLine();
pathsList << line;
}
bych nahradil za:
while (file.canReadLine()) {
QString line = out.readLine();
pathsList << line;
}
a smazat obsah souboru jde lépe:
if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) {
emit newLog(tr("Výmaz"));
emit newLog(file.errorString());
} else {
file.close();
}
while (!out.atEnd()) {
QString line = out.readLine();
pathsList << line;
}
za
while (file.canReadLine()) {
QString line = out.readLine();
pathsList << line;
}
nefunguje, ale to mě zas tak netrápí jak to sledování souboru
Tiskni
Sdílej: