QUiLoader uiLoader;
QFile file("sortdialog.ui");
QWidget *sortDialog = uiLoader.load(&file);
if (sortDialog) {
....
}
#ifndef TESTCLASS_H
#define TESTCLASS_H
#include "ui_MainWindow.h"
class TestClass
{
public:
TestClass();
void changeTextOnForm(Ui_MainWindow *mainWindow);
};
#endif // TESTCLASS_H
#include "TestClass.h"
TestClass::TestClass()
{
}
void TestClass::changeTextOnForm(Ui_MainWindow *mainWindow)
{
mainWindow->label_2->setText(QString("Text from ") + Q_FUNC_INFO);
mainWindow->textBrowser->append(mainWindow->label_2->text());
}
...
void MainWindow::on_pushButton_clicked()
{
TestClass testClass;
testClass.changeTextOnForm(this->ui);
}
...
Часть кода separate_image выглядит следующим образом:void separateImage(char* path_to_image) { ... }
void MainWindow::separateImage(char* path_to_image)
{
...
}
На 2 компьютерах(windows 7 и 8) с установленной QT все работает. При запуске на компьютерах без QT программа падает.
make &> make.log
На основе полученных данных и файлов ручками написал платформонезависимый "*.pro"-файл, полностью интегрировав библиотеку в проект и избавившись от монструозного autotools. На это ушло приблизительно 1.5-часа, в библиотеке было приблизительно 50 "*.c" и "*.h"-файлов. ui->label->setStyleSheet("QLabel {"
"border-style: solid;"
"border-width: 1px;"
"border-color: black; "
"}");
QGraphicsDropShadowEffect* effect = new QGraphicsDropShadowEffect(this);
effect->setOffset(-1, -1);
effect->setColor(Qt::yellow);
ui->label->setGraphicsEffect(effect);
QGraphicsDropShadowEffect *eff = new QGraphicsDropShadowEffect(this);
eff->setOffset(0, 0);
eff->setBlurRadius(5.0);
eff->setColor(Qt::red);
ui->label->setGraphicsEffect(eff);
void Widget::paintEvent(QPaintEvent *)
{
int off = 10;
QPainter painter(this);
QPainterPath path;
QFont drawFont("Sans", 20);
path.addText(off, drawFont.pointSize() + off, drawFont, text());
painter.setRenderHints(QPainter::Antialiasing);
painter.strokePath(path, QPen(QColor("#FF8C00"), 4));
painter.fillPath(path, QBrush(Qt::black));
resize(path.boundingRect().size().toSize().width() + off * 2, path.boundingRect().size().toSize().height() + off * 2);
}
OptionApp *optionDialog = new OptionApp(this);
optionDialog->show();
setAttribute(Qt::WA_DeleteOnClose);
OptionDialog.exec();
Current Directory/
|
+-platforms/
| |
| +-qwindows.dll
|
+-sqldrivers/
| |
| +-qsqlite.dll
|
+-DatabaseAnime.exe
|
+-Qt5Core.dll
|
+-Qt5Gui.dll
|
+-Qt5Sql.dll
|
+-Qt5Widgets.dll
|
+-icudt52.dll
|
+-icuin52.dll
|
+-icuuc52.dll
|
+-libgcc_s_dw2-1.dll
|
+-libstdc++-6.dll
|
+-libwinpthread-1.dll
Есть идеи?
QMAKE_LFLAGS += -static -static-libgcc -static-libstdc++
Кстати, при статической сборке QtWebkit не будет собираться. Пробовал подключить различные библиотеки:Во-первых, а кто вам сказал, что таким образом подключаются библиотеки в C++? Так только подключаются объявления классов и их методов. Библиотеки вы таким образом к проекту не подключите и следовательно получите закономерную ошибку линковки "undefined reference to ...". Это полностью логично, поскольку объявления вы подключили, а их реализацию - нет. Кстати, эти строки вам вообще не нужны, удалите их, они не возымеют должного эффекта, поскольку уже есть в "ui_MainWindow.h", откройте этот файл и изучите его заголовок.
#include
#include
http://www.trolltech.com/
#include <QWebView>
QT += core gui webkit webkitwidgets
#include <QtWebKitWidgets/QWebView>
#include <QtWebKit>
#-------------------------------------------------
#
# Project created by QtCreator 2014-06-09T02:41:10
#
#-------------------------------------------------
QT += core gui webkit webkitwidgets
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = untitled3
TEMPLATE = app
SOURCES += main.cpp\
MainWindow.cpp
HEADERS += MainWindow.h
FORMS += MainWindow.ui
#include "MainWindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
private slots:
void on_pushButton_clicked();
};
#endif // MAINWINDOW_H
#include "MainWindow.h"
#include "ui_MainWindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
ui->webView->setUrl(QUrl("http://www.habrahabr.ru"));
}
[PDA_Maze]
TimerMode=0
MapMode=1
MapSize=29
ShowStep=false
ScaleScreen=0
SmoothScreen=false
AppLanguage=ru
diff -Naur qwt-6.1.0/qwtconfig.pri qwt-6.1.0_m/qwtconfig.pri
--- qwt-6.1.0/qwtconfig.pri Thu May 30 22:18:27 2013
+++ qwt-6.1.0_m/qwtconfig.pri Sun May 25 00:49:50 2014
@@ -23,7 +23,7 @@
}
win32 {
- QWT_INSTALL_PREFIX = C:/Qwt-$$QWT_VERSION
+ QWT_INSTALL_PREFIX = C:/Qt/Qwt-$$QWT_VERSION
}
QWT_INSTALL_DOCS = $${QWT_INSTALL_PREFIX}/doc
qmake qwt.pro
mingw32-make -j3
mingw32-make install
diff -Naur qwtpolar-1.1.0/qwtpolarconfig.pri qwtpolar-1.1.0_m/qwtpolarconfig.pri
--- qwtpolar-1.1.0/qwtpolarconfig.pri Fri Jan 31 15:23:39 2014
+++ qwtpolar-1.1.0_m/qwtpolarconfig.pri Sun May 25 01:06:57 2014
@@ -20,7 +20,7 @@
}
win32 {
- QWT_POLAR_INSTALL_PREFIX = C:/QwtPolar-$$QWT_POLAR_VERSION
+ QWT_POLAR_INSTALL_PREFIX = C:/Qt/QwtPolar-$$QWT_POLAR_VERSION
}
QWT_POLAR_INSTALL_DOCS = $${QWT_POLAR_INSTALL_PREFIX}/doc
qmake -set QMAKEFEATURES "c:/Qt/Qwt-6.1.0/features"
qmake qwtpolar.pro
mingw32-make -j3
mingw32-make install
qmake -set QMAKEFEATURES "f:/Qt/Qwt-6.1.0/features"