Теперь я попытался запустить его на своем Android устройство (с Clang Arm64-v8a), но некоторые функции не работают так, как в настольном приложении. Я также пробовал настроить список в MainWidget, но у меня те же проблемы. Основной из них – QList:
[*]Когда я нажимаю на кнопку, ничего не происходит, должно происходить очистка списка и добавление нового элемента.
Я просто не могу выбрать ни один элемент.
[*]В моей раскладке все смещается влево после открытия виджета
Я получаю следующее предупреждение:
(
Код: Выделить всё
scanwindow.h
Код: Выделить всё
#ifndef SCANWINDOW_H
#define SCANWINDOW_H
#include
#include
#include
#include
#include
namespace Ui {
class ScanWindow;
}
class ScanWindow : public QMainWindow
{
Q_OBJECT
public:
explicit ScanWindow(QWidget *parent = nullptr);
~ScanWindow();
private slots:
void on_startScanButton_clicked();
void deviceDiscovered(const QBluetoothDeviceInfo &device);
void on_deviceList_itemClicked(QListWidgetItem *item);
void on_connectButton_clicked();
void on_clearButton_clicked();
signals:
void characteristicValueChanged(const QString &value);
void deviceSelected(const QBluetoothDeviceInfo &device);
private:
Ui::ScanWindow *ui;
QBluetoothDeviceDiscoveryAgent *discoveryAgent;
QBluetoothDeviceInfo selectedDevice;
QList services;
};
#endif
Код: Выделить всё
#include "scanwindow.h"
#include "ui_scanwindow.h"
#include
#include
#include
ScanWindow::ScanWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::ScanWindow)
, discoveryAgent(new QBluetoothDeviceDiscoveryAgent(this))
{
ui->setupUi(this);
ui->connectButton->setDisabled(true);
connect(discoveryAgent, &QBluetoothDeviceDiscoveryAgent::deviceDiscovered, this, &ScanWindow::deviceDiscovered);
}
ScanWindow::~ScanWindow()
{
qDeleteAll(services);
services.clear();
delete ui;
}
void ScanWindow::on_startScanButton_clicked()
{
ui->deviceList->clear();
#if QT_CONFIG(permissions)
QBluetoothPermission permission;
permission.setCommunicationModes(QBluetoothPermission::Access);
switch (qApp->checkPermission((permission))) {
case Qt::PermissionStatus::Undetermined:
qDebug() requestPermission(permission, this, &ScanWindow::on_startScanButton_clicked);
break;
case Qt::PermissionStatus::Denied:
qDebug() start(QBluetoothDeviceDiscoveryAgent::LowEnergyMethod);
}
void ScanWindow::deviceDiscovered(const QBluetoothDeviceInfo &device){
if (device.coreConfigurations() & QBluetoothDeviceInfo::LowEnergyCoreConfiguration) {
qDebug() deviceList);
item->setData(Qt::UserRole,QVariant::fromValue(device));
}
}
void ScanWindow::on_deviceList_itemClicked(QListWidgetItem *item) {
QBluetoothDeviceInfo device = item->data(Qt::UserRole).value();
selectedDevice = device;
ui->connectButton->setEnabled(true);
qDebug() deviceList2->repaint();
ui->deviceList2->updateGeometry();
ui->deviceList2->update();
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
}
Подробнее здесь: https://stackoverflow.com/questions/789 ... -for-qlist