좋아, 실제로 필요한 것을 수행하는 코드를 작성했습니다. 좋은 점은 Qt에서 매우 쉽습니다.
건물 정보는이 게시물의 맨 아래에 있습니다.
xclipshow.cpp :
#include <QApplication>
#include <QTimer>
#include <QClipboard>
#include <QMimeData>
#include <QDebug>
#include <QStringList>
class App: public QObject {
Q_OBJECT
private:
void main();
public:
App(): QObject() { }
public slots:
void qtmain() { main(); emit finished(); }
signals:
void finished();
};
void App::main() {
QClipboard *clip = QApplication::clipboard();
for(QString& formatName: clip->mimeData()->formats()) {
std::string s;
s = formatName.toStdString();
QByteArray arr = clip->mimeData()->data(formatName);
printf("name=%s, size=%d: ", s.c_str(), arr.size());
for(int i = 0; i < arr.size(); i++) {
printf("%02x ", (unsigned char) arr.at(i));
}
printf("\n");
}
}
int main(int argc, char **argv) {
QApplication app(argc, argv);
App *task = new App();
QObject::connect(task, SIGNAL(finished()), & app, SLOT(quit()));
QTimer::singleShot(0, task, SLOT(qtmain()));
return app.exec();
}
#include "xclipshow.moc"
CMakeLists.txt :
cmake_minimum_required(VERSION 3.0.0)
project(xclipshow)
find_package(Qt5Widgets)
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(SRC
xclipshow.cpp)
add_definitions(-std=c++11)
add_executable(xclipshow ${SRC})
qt5_use_modules(xclipshow Widgets Core)
@slm의 의견에서 요청한 건물 정보 : 사용중인 시스템에 따라 다릅니다. 이 코드는 컴파일하기 위해 Qt5와 CMake가 필요합니다. 둘 다 가지고 있다면 다음을 실행하기 만하면됩니다.
BUILD_DIR=<path to an empty temporary dir, which will contain the executable file>
SRC_DIR=<path to the directory which contains xclipshow.cpp>
$ cd $BUILD_DIR
$ cmake $SRC_DIR
$ make
FreeBSD를 사용하는 경우 'gmake', Windows를 사용하는 경우 'mingw32-make'등
Qt5 또는 CMake가없는 경우 Qt4 및 수동 컴파일을 사용하여 벗어날 수 있습니다.
$ moc xclipshow.cpp > xclipshow.moc
$ g++ xclipshow.cpp -o xclipshow `pkg-config --cflags --libs QtGui` -I. --std=c++11
잘못된 --std=c++11
옵션 에 대한 정보를 얻는 경우 --std=c++0x
대신 시도 하고 컴파일러 업그레이드를 고려하십시오.;).