再说简单一点,就是我想设置google earth 按钮上的text
#include <QApplication>
#include <QtGui>
#include <QDialog>
#include <QPushButton>
#include <QWidget>
#include <windows.h>
#pragma comment (lib,"user32.lib")
class Window : public QDialog
{
Q_OBJECT
public:
Window(QWidget *parent = 0): QDialog(parent)
{
findButton = new QPushButton(tr("Find"),this);
testButton = new QPushButton(tr("Test"),this);
connect(findButton, SIGNAL(clicked()), this, SLOT(find()));
connect(testButton, SIGNAL(clicked()), this, SLOT(test()));
QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->addStretch();
mainLayout->addWidget(findButton);
mainLayout->addWidget(testButton);
setLayout(mainLayout);
setWindowTitle(tr("Find Files"));
resize(200, 100);
};
private slots:
void test();
void find();
private:
QPushButton *testButton;
QPushButton *findButton;
};
BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)
{
TCHAR *tc = new TCHAR[256];
::GetWindowText(hwnd,tc,256-1);
if(strcmp(tc,"Find Files") == 0)
{
QWidget *widget = QWidget::find(hwnd);
QList <QObject*> widgets=widget->children();
QListIterator <QObject *> i(widgets);
while(i.hasNext())
{
QObject* obj =i.next();
QString str = obj->metaObject()->className();
if(str == "QPushButton")
{
QPushButton* label = qobject_cast<QPushButton*>(obj);
if(label->text() == "Find")
label->setText("abcde");
}
}
}
return TRUE;
}
void Window::find()
{
EnumWindows((WNDENUMPROC)EnumWindowsProc,0);
}
void Window::test()
{
}
#include "main.moc"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Window window;
window.show();
return app.exec();
}
机器人,
这首歌学会了没有?
我们的目标是->没有蛀牙!