html代码,写了table-layout: fixed 以后 table为啥没100%的宽度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html代码,写了table-layout: fixed 以后 table为啥没100%的宽度相关的知识,希望对你有一定的参考价值。

html代码中写了table-layout: fixed 以后 table为什么没100%的宽度
代码如下

效果如下:

这是我代码的文字版<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title><style type="text/css">.t1 table-layout: fixed; border-collapse: collapse; border:1px solid ;</style></head><body><table class="t1" ><tr><td>CSS样式控制表格1</td><td>CSS样式控制表格2</td><td>CSS样式控制表格3</td></tr><tr><td>CSS样式控制表格4</td><td>CSS样式控制表格5</td><td>CSS样式控制表格6</td></tr><tr><td>CSS样式控制表格7</td><td>CSS样式控制表格8</td><td>CSS样式控制表格9</td></tr></table></body></html>

参考技术A automatic 默认。列宽度由单元格内容设定。
fixed 列宽由表格宽度和列宽度设定。
inherit 规定应该从父元素继承 table-layout 属性的值。
看api

fixed 列宽由表格宽度和列宽度设定。 就是你写了宽度他就严格按照宽度执行,不会被内容撑开,如果内容宽度1000,你在元素上设置width 100,那么内容就会挤在一起,只在100内显示

automatic 就是根据内容来如果内容只有100宽那么他就是100,如果内容是1000宽那么他就是1000宽
inherit 字面意思,

Qt 通过 QNetworkAccessManager 扫描 Wi-Fi

【中文标题】Qt 通过 QNetworkAccessManager 扫描 Wi-Fi【英文标题】:Qt Scanning Wi-Fi by QNetworkAccessManager 【发布时间】:2017-08-03 14:19:40 【问题描述】:

欢迎 我在扫描 Wi-Fi 以获取所有可用的 Wi-Fi 连接时遇到问题。到目前为止我已经写了这段代码:

#include <QCoreApplication>
#include <QNetworkConfigurationManager>
#include <QNetworkConfiguration>
#include <QDebug>
#include <QNetworkSession>

int main(int argc, char *argv[])


    QCoreApplication a(argc, argv);
    QNetworkConfigurationManager ncm;
    QNetworkConfiguration cfg;
    QNetworkConfiguration::StateFlags flags;

    int count = QNetworkConfiguration::Active;

   qDebug() << "Amount available connect in Wi-Fi :" << count;

   qDebug() << ncm.allConfigurations(flags = 0);

   return a.exec();


我在显示 allConfigurations 时遇到问题。我已阅读文档 Qt Network Configuration Manager 但我不知道该怎么做。

【问题讨论】:

我想获取可以通过 wifi 连接的可用设备列表。我读过 allConfigurations 使之成为可能,但我无法使其工作。 function allConfigurations return QList&lt;QNetworkConfiguration&gt; 你不能调试它。 好的,我为您制作了一个简单的应用程序来做到这一点。 int count = QNetworkConfiguration::Active; 看起来不对。您没有获得活动设备的数量,而是存储了枚举的 int 值。并编辑您的问题,而不是通过发布 cmets 来完成它。 最好使用本机方法获取 wifi 网络 SSID,因为不能保证“QNetworkConfiguration”总是返回网络的 SSID。如果是 windows 使用 windows 库,如果是 android,则通过 java 使用 android wifi 服务,如果是在 ios 中,则使用objective c 【参考方案1】:

使用QNetworkAccessManager扫描 Wi-Fi。

我使用 QNetworkConfigurationManager 类来获取所有可用的 WiFi 并将它们全部显示到 QTreeWidget 中。

QNetworkConfigurationManager ncm; netcfgList = ncm.allConfigurations();

.pro 文件:

QT       += core gui network

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = WiFi
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

.cpp 文件:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)

    ui->setupUi(this);

    findTimer = new QTimer();
    findTimer->setInterval(1000);
    connect(findTimer,&QTimer::timeout,this,&MainWindow::findActiveWirelesses);
    findTimer->start();
    foundCount = 0;
    ui->treeWidgetWiFis->setColumnWidth(0,50);
    ui->treeWidgetWiFis->setColumnWidth(1,200);
    findActiveWirelesses();


MainWindow::~MainWindow()

    delete ui;


void MainWindow::findActiveWirelesses()

    QNetworkConfigurationManager ncm;
    netcfgList = ncm.allConfigurations();
    WiFisList.clear();
    for (auto &x : netcfgList)
    
        if (x.bearerType() == QNetworkConfiguration::BearerWLAN)
        
            if(x.name() == "")
                WiFisList << "Unknown(Other Network)";
            else
                WiFisList << x.name();

            qDebug() << x.type();
        
    
    for(int i=0; i<WiFisList.size(); i++)
    
        bool exist = false;
        QTreeWidgetItem * item = new QTreeWidgetItem();
        for(int j=0; j<ui->treeWidgetWiFis->topLevelItemCount(); j++)
        
            QTreeWidgetItem *index = ui->treeWidgetWiFis->topLevelItem(j);
            QString str = index->text(1);
            if(str == WiFisList[i])
            
                exist = true;
                break;
            
        
        if(!exist)
        
            item->setTextAlignment(0,Qt::AlignVCenter);
            item->setTextAlignment(1,Qt::AlignHCenter);
            item->setText(0,QString::number(++foundCount));
            item->setText(1,WiFisList[i]);
            ui->treeWidgetWiFis->addTopLevelItem(item);
        
    

.h 文件:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTimer>
#include <QList>
#include <QInputDialog>
#include <QStandardItem>
#include <QStandardItemModel>
#include <QNetworkConfiguration>
#include <QNetworkConfigurationManager>
#include <QNetworkSession>

namespace Ui 
class MainWindow;


class MainWindow : public QMainWindow

    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

    int foundCount;
    QNetworkConfiguration netcfg;
    QStringList WiFisList;
    QList<QNetworkConfiguration> netcfgList;

public slots:
    void findActiveWirelesses();


private:
    Ui::MainWindow *ui;
    QTimer *findTimer;
    QStandardItemModel* listModel;
    QNetworkSession *session;
;

#endif // MAINWINDOW_H

【讨论】:

非常感谢。我检查了一下这段代码。 @nightrayy 我更新我的答案。添加截图并解释更多。 我收到这样的错误:/home/krzysztof/Pulpit/QT-programy/WiFi/mainwindow.cpp:16: błąd: 'class Ui::MainWindow' has no member named 'treeWidgetWiFis' ui->treeWidgetWiFis->setColumnWidth(0,50);我添加了 QWidgetTree 但它没有帮助 有什么理由使用QTreeWidget 而不是QTableWidget 好的,我添加了 treeWidget 并将他重命名为 treeWidgetWifis 和窗口显示,但在控制台中只是 0

以上是关于html代码,写了table-layout: fixed 以后 table为啥没100%的宽度的主要内容,如果未能解决你的问题,请参考以下文章

chrome vs FF/IE/Opera 计算表格单元格宽度? (表格布局:固定)

固定表头,左右滑动条

Qt 通过 QNetworkAccessManager 扫描 Wi-Fi

table-layout 属性

有关 TABLE-LAYOUT: fixed; 在ie6和ie8的问题

table-layout引起的探索——fixed和auto的区别