Linuxos vágólap és windowsos vágólap között mi a különbség?
Ezt amiatt kérdem, mert írtam egy kis programot java-ban, ami a vágólap (szöveges) tartalmát kijelzi egy kis alkalmazásban. Linuxon ez tökéletesen működik, a probléma a windowsnál van: ha az a kis java alkalmazás be van kapcsolva, akkor képernyőmentést (printscreen) nem lehet használni.
Az igaz, hogy a java programban egy szálat hoztam létre, ami 200 miliszecként leolvassa azt, hogy mi van a vágólapon, a következő módon:
data = new String(c.getData(DataFlavor.stringFlavor).toString());
ahol a c változó:
private Clipboard c = Toolkit.getDefaultToolkit()
.getSystemClipboard();
magában az osztály egyik privát adattagja.
....
A probléma sajnos windows alatt probléma.
"200 miliszecként leolvassa azt, hogy mi van a vágólapon"
Nem túl szép megoldás. :(
Próbálj rákeresni guglival: clipboard change event java
Több ok volt, amiért a java-t választottam:
1) platform független
2) GUI
3) egyszerűség (pl. nincsenek pointerek), jó, jó, tudom, hogy a smartpointerrel ezt küszöbölni lehet, de mégsem az.
4) Könnyű átláthatóság (egy jól, szabályosan megírt java program olvasása/megértése nagyon egyszerű)
4) Fejlődő nyelv (folyamatos fejlesztés alatt van)
.....
Tudom, hogy a C (azaz QT) több fenti feltételt is teljesít, de a QT-ban rakás hibát tapasztaltam. A Lazarust nem ismerem, bár régebben programoztam Pascalban, ami akkoriban nagyon testszett. Talán ki is próbálom a lazarust.
C++ Qt framework, ha változik kiírja, ha lenyomod a gombot beállítja arra ami van a textboxban. 9MB szöveget 1 sec alatt ír ki, tehát valószínű SimkoL sebességigényének is megfelel.
// Lényegi rész
connect(QApplication::clipboard(), &QClipboard::dataChanged, [&]()
{
const auto cpText = QApplication::clipboard()->text();
if(cpText.length())
{
ui.plainTextEdit->setPlainText(cpText);
}
});
connect(ui.pushButton, &QPushButton::clicked, [&]() { QApplication::clipboard()->setText( ui.plainTextEdit->toPlainText()); });
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!